1 | dojo.provide("dojox.rpc.tests.Geonames"); |
---|
2 | dojo.require("dojo.io.script"); |
---|
3 | dojo.require("dojox.rpc.Service"); |
---|
4 | |
---|
5 | dojox.rpc.tests.service = new dojox.rpc.Service(dojo.moduleUrl("dojox.rpc.SMDLibrary", "geonames.smd")); |
---|
6 | |
---|
7 | dojox.rpc.tests.TEST_METHOD_TIMEOUT = 20000; |
---|
8 | dojox.rpc.tests.TEST_METHOD_LONG_TIMEOUT = 30000; |
---|
9 | |
---|
10 | dojox.rpc.tests._testMethod = function(method){ |
---|
11 | |
---|
12 | return function(m){ |
---|
13 | var d = new doh.Deferred(); |
---|
14 | |
---|
15 | if (method.name && method.parameters) { |
---|
16 | var def = dojox.rpc.tests.service[method.name](method.parameters); |
---|
17 | def.addCallback(this, function(result){ |
---|
18 | if (method.debugTest) { |
---|
19 | console.log("Results: ", dojo.toJson(result)); |
---|
20 | } |
---|
21 | var testType = method.testType || "compare"; |
---|
22 | switch(testType){ |
---|
23 | case "compare": |
---|
24 | console.log("Comparison Test"); |
---|
25 | if (dojo.toJson(result)==method.expectedResult){ |
---|
26 | d.callback(true); |
---|
27 | }else{ |
---|
28 | d.errback(new Error("Unexpected Return Value in comparison: ", result)); |
---|
29 | } |
---|
30 | break; |
---|
31 | case "result": |
---|
32 | console.log("Result Test"); |
---|
33 | if (result && dojo.toJson(result)){ |
---|
34 | d.callback(true); |
---|
35 | }else{ |
---|
36 | d.errback(new Error("Unexpected Return Value, no result or not valid json: ", result)); |
---|
37 | |
---|
38 | } |
---|
39 | break; |
---|
40 | default: |
---|
41 | d.errback(new Error("Unknown test type")); |
---|
42 | break; |
---|
43 | } |
---|
44 | }); |
---|
45 | } |
---|
46 | |
---|
47 | return d; |
---|
48 | } |
---|
49 | }; |
---|
50 | |
---|
51 | doh.register("dojox.rpc.tests.geonames", |
---|
52 | [ |
---|
53 | { |
---|
54 | name: "#1, getCities()", |
---|
55 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
56 | runTest: dojox.rpc.tests._testMethod({ |
---|
57 | name: "getCities", |
---|
58 | parameters: {north: 44.1, south:-9.9, east: -22.4, west: 55.2}, |
---|
59 | expectedResult: dojo.toJson({"geonames":[{"fcodeName":"capital of a political entity","countrycode":"MX","fcl":"P","fclName":"city, village,...","name":"Mexico City","wikipedia":"en.wikipedia.org/wiki/Mexico_City","lng":-99.1386111,"fcode":"PPLC","geonameId":3530597,"lat":19.4341667,"population":11285654},{"fcodeName":"capital of a political entity","countrycode":"PH","fcl":"P","fclName":"city, village,...","name":"Manila","wikipedia":"","lng":120.9822222,"fcode":"PPLC","geonameId":1701668,"lat":14.6041667,"population":10444527},{"fcodeName":"capital of a political entity","countrycode":"BD","fcl":"P","fclName":"city, village,...","name":"Dhaka","wikipedia":"en.wikipedia.org/wiki/Dhaka","lng":90.4086111,"fcode":"PPLC","geonameId":1185241,"lat":23.7230556,"population":10356500},{"fcodeName":"capital of a political entity","countrycode":"KR","fcl":"P","fclName":"city, village,...","name":"Seoul","wikipedia":"en.wikipedia.org/wiki/Seoul","lng":126.9997222,"fcode":"PPLC","geonameId":1835848,"lat":37.5663889,"population":10349312},{"fcodeName":"capital of a political entity","countrycode":"ID","fcl":"P","fclName":"city, village,...","name":"Jakarta","wikipedia":"en.wikipedia.org/wiki/Jakarta","lng":106.8294444,"fcode":"PPLC","geonameId":1642911,"lat":-6.1744444,"population":8540121},{"fcodeName":"capital of a political entity","countrycode":"JP","fcl":"P","fclName":"city, village,...","name":"Tokyo","wikipedia":"en.wikipedia.org/wiki/Tokyo","lng":139.7513889,"fcode":"PPLC","geonameId":1850147,"lat":35.685,"population":8336599},{"fcodeName":"capital of a political entity","countrycode":"TW","fcl":"P","fclName":"city, village,...","name":"Taipei","wikipedia":"en.wikipedia.org/wiki/Taipei","lng":121.525,"fcode":"PPLC","geonameId":1668341,"lat":25.0391667,"population":7871900},{"fcodeName":"capital of a political entity","countrycode":"CN","fcl":"P","fclName":"city, village,...","name":"Beijing","wikipedia":"en.wikipedia.org/wiki/Beijing","lng":116.3883333,"fcode":"PPLC","geonameId":1816670,"lat":39.9288889,"population":7480601},{"fcodeName":"capital of a political entity","countrycode":"CO","fcl":"P","fclName":"city, village,...","name":"Bogotá","wikipedia":"en.wikipedia.org/wiki/Bogot%C3%A1","lng":-74.0833333,"fcode":"PPLC","geonameId":3688689,"lat":4.6,"population":7102602},{"fcodeName":"capital of a political entity","countrycode":"HK","fcl":"P","fclName":"city, village,...","name":"Hong Kong","wikipedia":"","lng":114.15007352829,"fcode":"PPLC","geonameId":1819729,"lat":22.2840136009625,"population":7012738}]}) |
---|
60 | }) |
---|
61 | }, |
---|
62 | { |
---|
63 | name: "#2, getQuakes()", |
---|
64 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
65 | runTest: dojox.rpc.tests._testMethod({ |
---|
66 | name: "getQuakes", |
---|
67 | parameters: {north: 44.1, south:-9.9, east: -22.4, west: 55.2, "date": "2007-07-31", maxRows: 1}, |
---|
68 | expectedResult: dojo.toJson({"earthquakes":[{"eqid":"2007flce","magnitude":6.1,"lng":-17.7996,"src":"us","datetime":"2007-07-31 22:55:31","depth":10,"lat":-0.095}]}) |
---|
69 | }) |
---|
70 | }, |
---|
71 | { |
---|
72 | name: "#3, getWeather()", |
---|
73 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
74 | runTest: dojox.rpc.tests._testMethod({ |
---|
75 | name: "getWeather", |
---|
76 | testType:'result', |
---|
77 | parameters: {north: 44.1, south:-9.9, east: -22.4, west: 55.2, "date": "2007-07-31", maxRows: 1} |
---|
78 | }) |
---|
79 | }, |
---|
80 | |
---|
81 | { |
---|
82 | name: "#4, getWeatherByICAO()", |
---|
83 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
84 | runTest: dojox.rpc.tests._testMethod({ |
---|
85 | name: "getWeatherByICAO", |
---|
86 | testType:'result', |
---|
87 | parameters: {ICAO:"LSZH"} |
---|
88 | }) |
---|
89 | }, |
---|
90 | |
---|
91 | { |
---|
92 | name: "#5, getWeatherByCoords()", |
---|
93 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
94 | runTest: dojox.rpc.tests._testMethod({ |
---|
95 | name: "getWeatherByCoords", |
---|
96 | testType:'result', |
---|
97 | parameters: {lat:43,lng:-2} |
---|
98 | }) |
---|
99 | }, |
---|
100 | |
---|
101 | { |
---|
102 | name: "#6, getChildren()", |
---|
103 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
104 | runTest: dojox.rpc.tests._testMethod({ |
---|
105 | name: "getChildren", |
---|
106 | parameters: {geonameId:3175395}, |
---|
107 | testType: 'result' |
---|
108 | }) |
---|
109 | }, |
---|
110 | |
---|
111 | { |
---|
112 | name: "#7, getHeirarchy()", |
---|
113 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
114 | runTest: dojox.rpc.tests._testMethod({ |
---|
115 | name: "getHierarchy", |
---|
116 | parameters: {geonameId:3175395}, |
---|
117 | testType: 'result' |
---|
118 | }) |
---|
119 | }, |
---|
120 | { |
---|
121 | name: "#8, getNeighbours()", |
---|
122 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
123 | runTest: dojox.rpc.tests._testMethod({ |
---|
124 | name: "getNeighbours", |
---|
125 | parameters: {geonameId:3175395}, |
---|
126 | testType: 'result' |
---|
127 | }) |
---|
128 | }, |
---|
129 | |
---|
130 | { |
---|
131 | name: "#9, getNeighbourhood()", |
---|
132 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
133 | runTest: dojox.rpc.tests._testMethod({ |
---|
134 | name: "getNeighbourhood", |
---|
135 | parameters: {lat:40.78343, lng:-73.96625}, |
---|
136 | expectedResult: dojo.toJson({"neighbourhood":{"adminName2":"New York County","adminCode2":"061","adminCode1":"NY","countryName":"United States","name":"Central Park","countryCode":"US","city":"New York City-Manhattan","adminName1":"New York"}}) |
---|
137 | }) |
---|
138 | }, |
---|
139 | |
---|
140 | { |
---|
141 | name: "#10, getSiblings()", |
---|
142 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
143 | runTest: dojox.rpc.tests._testMethod({ |
---|
144 | name: "getSiblings", |
---|
145 | parameters: {geonameId:3175395}, |
---|
146 | testType: 'result' |
---|
147 | }) |
---|
148 | }, |
---|
149 | |
---|
150 | { |
---|
151 | name: "#11, getCountryCode()", |
---|
152 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
153 | runTest: dojox.rpc.tests._testMethod({ |
---|
154 | name: "getCountryCode", |
---|
155 | parameters:{lat:40.78343, lng:-73.96625}, |
---|
156 | expectedResult: dojo.toJson({"distance":0,"countryName":"United States","countryCode":"US"}) |
---|
157 | }) |
---|
158 | }, |
---|
159 | { |
---|
160 | name: "#12, getCountrySubdivision()", |
---|
161 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
162 | runTest: dojox.rpc.tests._testMethod({ |
---|
163 | name: "getCountrySubdivision", |
---|
164 | parameters:{lat:40.78343, lng:-73.96625}, |
---|
165 | expectedResult: dojo.toJson({"distance":0,"adminCode1":"NY","countryName":"United States","countryCode":"US","codes":[{"code":"36","type":"FIPS10-4"},{"code":"NY","type":"ISO3166-2"}],"adminName1":"New York"}) |
---|
166 | }) |
---|
167 | }, |
---|
168 | { |
---|
169 | name: "#13, getWikipediaBoundingBox()", |
---|
170 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
171 | runTest: dojox.rpc.tests._testMethod({ |
---|
172 | name: "getWikipediaBoundingBox", |
---|
173 | parameters:{north: "44.1", "south": "-9.9", "east": "-22.4", "west": "55.2", "maxRows": "1"}, |
---|
174 | testType: 'result' |
---|
175 | }) |
---|
176 | }, |
---|
177 | { |
---|
178 | name: "#14, searchWikipedia()", |
---|
179 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
180 | runTest: dojox.rpc.tests._testMethod({ |
---|
181 | name: "searchWikipedia", |
---|
182 | parameters:{q: "dojo", maxRows: 1}, |
---|
183 | expectedResult: dojo.toJson({"geonames":[{"summary":"which is an umbrella organisation of various national, as well as smaller, aikido organisations. Although the name strictly refers only to the main training hall (''dojo''), it is often used by extension to refer to the Aikikai organisation itself. The dojo was founded by Morihei Ueshiba in 1931 under the name ''Kobukan'' (...)","title":"Aikikai Hombu Dojo","wikipediaUrl":"en.wikipedia.org/wiki/Aikikai_Hombu_Dojo","elevation":0,"countryCode":"JP","lng":139.714305555556,"feature":"landmark","lang":"en","lat":35.6991388888889,"population":0}]}) |
---|
184 | }) |
---|
185 | }, |
---|
186 | { |
---|
187 | name: "#15, getTimezone()", |
---|
188 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
189 | runTest: dojox.rpc.tests._testMethod({ |
---|
190 | name: "getTimezone", |
---|
191 | parameters:{lat:40.78343,lng:-73.96625}, |
---|
192 | expectedResult: dojo.toJson({"countryName":"United States","dstOffset":-4,"countryCode":"US","gmtOffset":-5,"lng":-73.96625,"timezoneId":"America/New_York","lat":40.78343}) |
---|
193 | }) |
---|
194 | }, |
---|
195 | |
---|
196 | { |
---|
197 | name: "#16, search()", |
---|
198 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
199 | runTest: dojox.rpc.tests._testMethod({ |
---|
200 | name: "search", |
---|
201 | parameters:{q: "dojo", maxRows: 1}, |
---|
202 | testType: 'result' |
---|
203 | }) |
---|
204 | }, |
---|
205 | |
---|
206 | { |
---|
207 | name: "#17, postalCodeLookup()", |
---|
208 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
209 | runTest: dojox.rpc.tests._testMethod({ |
---|
210 | name: "postcalCodeLookup", |
---|
211 | debugTest: true, |
---|
212 | parameters:{postalcode: "24060"}, |
---|
213 | expectedResult: dojo.toJson({}) |
---|
214 | }) |
---|
215 | }, |
---|
216 | |
---|
217 | { |
---|
218 | name: "#18, postalCodeSearch()", |
---|
219 | timeout: dojox.rpc.tests.TEST_METHOD_TIMEOUT, |
---|
220 | runTest: dojox.rpc.tests._testMethod({ |
---|
221 | name: "postalCodeSearch", |
---|
222 | parameters:{placename: "blacksburg"}, |
---|
223 | expectedResult: dojo.toJson({}) |
---|
224 | }) |
---|
225 | } |
---|
226 | ] |
---|
227 | ); |
---|