Skip to content

Commit 35debc7

Browse files
committed
提交查询微件的ut review by songym
1 parent c2e9cc6 commit 35debc7

File tree

2 files changed

+205
-1
lines changed

2 files changed

+205
-1
lines changed
Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
import { search } from '../../../../src/leaflet/widgets/search/SearchView'
2+
import { FetchRequest } from '../../../../src/common/util/FetchRequest';
3+
import { QueryBySQLService } from '../../../../src/common/iServer/QueryBySQLService';
4+
import { QueryBySQLParameters } from '../../../../src/common/iServer/QueryBySQLParameters';
5+
import { QueryOption } from '../../../../src/common/REST';
6+
import { FilterParameter } from '../../../../src/common/iServer/FilterParameter';
7+
8+
var map, url = GlobeParameter.WorldURL, testDiv;
9+
var poiSearch;
10+
describe('leaflet_search_SearchView', () => {
11+
var serviceResult, queryBySQLService;
12+
var originalTimeout, resultLayer;
13+
var geocodingGeson = [
14+
{
15+
"score": 85,
16+
"address": "北京市西城区槐柏树街9号北京小学",
17+
"location": {
18+
"x": 116.360603320322,
19+
"y": 39.89671784607
20+
},
21+
"filters": [
22+
"北京市",
23+
"西城区"
24+
]
25+
},
26+
27+
{
28+
"score": 77.5,
29+
"address": "北京市朝阳区水碓东路15号北京城市建设学校",
30+
"location": {
31+
"x": 116.473557329787,
32+
"y": 39.9280456866728
33+
},
34+
"filters": [
35+
"北京市",
36+
"朝阳区"
37+
]
38+
}
39+
];
40+
41+
beforeAll((done) => {
42+
43+
setTimeout(() => {
44+
testDiv = document.createElement("div");
45+
testDiv.id = 'map';
46+
testDiv.style.margin = "0 auto";
47+
testDiv.style.width = "800px";
48+
testDiv.style.height = "800px";
49+
document.body.appendChild(testDiv);
50+
map = L.map('map', {
51+
preferCanvas: true,
52+
crs: L.CRS.EPSG4326,
53+
center: [20, 80],
54+
maxZoom: 18,
55+
zoom: 2
56+
});
57+
58+
poiSearch = L.supermap.widgets.search({
59+
cityGeoCodingConfig: {
60+
addressUrl: "http://test:8090/iserver/services/addressmatch-Address/restjsr/v1/address"
61+
},
62+
}).addTo(map);
63+
var queryUrl = " http://test:8090/iserver/services/map-world/rest/maps/World/queryResults.json?returnContent=true";
64+
spyOn(FetchRequest, 'post').and.callFake((url, queryString) => {
65+
console.log(url);
66+
if (url.indexOf("/queryResults.json") > -1) {
67+
var escapedJson = capitals;
68+
return Promise.resolve(new Response(JSON.stringify(escapedJson)));
69+
70+
}
71+
return Promise.resolve();
72+
});
73+
var queryFailedEventArgs = null, serviceSuccessEventArgs = null;
74+
var QueryBySQLFailed = (serviceFailedEventArgs) => {
75+
queryFailedEventArgs = serviceFailedEventArgs;
76+
expect(false).toBeTruthy();
77+
};
78+
var QueryBySQLCompleted = (queryEventArgs) => {
79+
serviceSuccessEventArgs = queryEventArgs;
80+
try {
81+
resultLayer = L.geoJSON(serviceSuccessEventArgs.result.recordsets[0].features, {
82+
pointToLayer: (geoJsonPoint, latlng) => {
83+
return L.circleMarker(latlng, {
84+
fillColor: 'blue',
85+
weight: 1,
86+
opacity: 1,
87+
color: 'blue',
88+
fillOpacity: 0.6
89+
});
90+
},
91+
}).addTo(map);
92+
poiSearch.addSearchLayer([L.supermap.widgets.geoJSONLayerWithName("首都", resultLayer)]);
93+
done();
94+
} catch (exception) {
95+
expect(false).toBeTruthy();
96+
console.log("SearchView" + exception.name + ":" + exception.message);
97+
queryBySQLService.destroy();
98+
params.destroy();
99+
queryFailedEventArgs = null;
100+
serviceSuccessEventArgs = null;
101+
done();
102+
}
103+
};
104+
var options = {
105+
eventListeners: {
106+
'processFailed': QueryBySQLFailed,
107+
'processCompleted': QueryBySQLCompleted
108+
}
109+
};
110+
var polygon = L.polygon([[90, 180], [90, -180], [-90, -180], [-90, 180], [90, 180]]);
111+
var params = new QueryBySQLParameters({
112+
queryParams: { name: "Capitals@World.1" },
113+
bounds: polygon.getBounds()
114+
});
115+
queryBySQLService = new QueryBySQLService(queryUrl, options);
116+
queryBySQLService.events.on({ 'processCompleted': QueryBySQLCompleted });
117+
queryBySQLService.processAsync(params);
118+
}, 4000);
119+
});
120+
121+
beforeEach(() => {
122+
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
123+
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
124+
serviceResult = null;
125+
});
126+
127+
afterEach(() => {
128+
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
129+
});
130+
afterAll(() => {
131+
map = null;
132+
document.body.removeChild(testDiv);
133+
});
134+
135+
it('search:searchFromLayer', (done) => {
136+
137+
expect(poiSearch.viewModel.dataModel.layers).not.toBeUndefined();
138+
poiSearch.viewModel.on('searchlayersucceed', function (e) {
139+
try {
140+
expect(e.result[0].feature).not.toBeNull();
141+
expect(e.result[0].feature).not.toBeUndefined();
142+
done();
143+
} catch (exception) {
144+
console.log("'readfile'案例失败:" + exception.name + ":" + exception.message);
145+
expect(false).toBeTruthy();
146+
done();
147+
}
148+
})
149+
150+
poiSearch.viewModel.search("北京", "首都");
151+
})
152+
153+
it('search:searchFromCityGeocodeService', (done) => {
154+
155+
spyOn(FetchRequest, 'get').and.callFake((url, params, options) => {
156+
console.log(url);
157+
if (url.indexOf("geocoding") > -1) {
158+
var escapedJson = geocodingGeson;
159+
return Promise.resolve(new Response(JSON.stringify(escapedJson)));
160+
}
161+
return Promise.resolve();
162+
});
163+
164+
poiSearch.viewModel.on('geocodesucceed', function (e) {
165+
try {
166+
expect(e.result[0].geometry.coordinates.length).toBe(2);
167+
done();
168+
} catch (exception) {
169+
console.log("'readfile'案例失败:" + exception.name + ":" + exception.message);
170+
expect(false).toBeTruthy();
171+
done();
172+
}
173+
})
174+
poiSearch.viewModel.search("北京");
175+
});
176+
177+
it('panToCity', (done) => {
178+
spyOn(FetchRequest, 'get').and.callFake((url, params, options) => {
179+
console.log(url);
180+
if (url.indexOf("geocoding") > -1) {
181+
var escapedJson = geocodingGeson;
182+
return Promise.resolve(new Response(JSON.stringify(escapedJson)));
183+
}
184+
return Promise.resolve();
185+
});
186+
spyOn(poiSearch.viewModel.map, 'setView').and.callThrough();
187+
document.getElementsByClassName('widget-search__settings__name')[0].click()
188+
document.getElementsByClassName('widget-citytabpag__content')[0].childNodes[0].click();
189+
setTimeout(() => {
190+
try {
191+
expect(poiSearch.viewModel.map.setView).toHaveBeenCalled();
192+
done();
193+
} catch (exception) {
194+
console.log("'layerSelectOptions'案例失败:" + exception.name + ":" + exception.message);
195+
expect(false).toBeTruthy();
196+
done();
197+
}
198+
}, 2000);
199+
200+
})
201+
})

test/test-main-leaflet.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ import './leaflet/services/ThiessenAnalysisSpec.js';
6969
import './leaflet/services/TrafficTransferAnalystServiceSpec.js';
7070

7171
/* widget */
72+
import './leaflet/widgets/openfile/OpenFileViewSpec.js';
7273
import './leaflet/widgets/dataservicequery/DataServiceQueryViewSpec.js';
74+
import './leaflet/widgets/distributedanalysis/DistributedAnalysisViewSpec.js';
7375
import './leaflet/widgets/clientcomputation/ClientComputationViewSpec.js';
74-
import './leaflet/widgets/openfile/OpenFileViewSpec.js';
76+
import './leaflet/widgets/search/SearchViewSpec.js';
77+

0 commit comments

Comments
 (0)