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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy