Skip to content

Commit f0e2836

Browse files
committed
【ut】add UT
1 parent 653f70e commit f0e2836

File tree

2 files changed

+294
-36
lines changed

2 files changed

+294
-36
lines changed

test/openlayers/mapping/WebMap2Spec.js

Lines changed: 158 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,14 @@ describe('openlayers_WebMap', () => {
3232
},
3333
set() {}
3434
});
35-
// 重置navigator
35+
// 重置navigator
3636
Object.defineProperty(window, 'navigator', {
3737
value: originalNavigator,
3838
writable: true
3939
});
40+
spyOn(CommonUtil, 'isInTheSameDomain').and.callFake((url) => {
41+
return true;
42+
});
4043
});
4144

4245
afterAll(() => {
@@ -54,9 +57,6 @@ describe('openlayers_WebMap', () => {
5457
window.document.body.appendChild(testDiv);
5558
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
5659
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
57-
58-
59-
6060
});
6161
afterEach(() => {
6262
webMap = null;
@@ -66,8 +66,8 @@ describe('openlayers_WebMap', () => {
6666

6767
it('getCookie', () => {
6868
cookieValue = 'testKey=testValue;language=zh-CN;another=value';
69-
70-
spyOn(FetchRequest, 'get').and.callFake((url) => {
69+
70+
spyOn(FetchRequest, 'get').and.callFake((url) => {
7171
if (url.indexOf('map.json') > -1) {
7272
var mapJson = datavizWebmap_ZXYTILE;
7373
return Promise.resolve(new Response(mapJson));
@@ -85,7 +85,7 @@ describe('openlayers_WebMap', () => {
8585

8686
it('formatCookieLang', () => {
8787
const webmap = new WebMap(id, { server: server });
88-
88+
8989
// 测试各种语言代码映射
9090
expect(webmap.formatCookieLang('zh')).toBe('zh-CN');
9191
expect(webmap.formatCookieLang('ar')).toBe('ar-EG');
@@ -124,7 +124,7 @@ describe('openlayers_WebMap', () => {
124124
expect(webmap.formatCookieLang('uk')).toBe('uk-UA');
125125
expect(webmap.formatCookieLang('vi')).toBe('vi-VN');
126126
expect(webmap.formatCookieLang('en')).toBe('en-US');
127-
127+
128128
// 测试未知语言代码
129129
expect(webmap.formatCookieLang('unknown')).toBe('en-US');
130130
});
@@ -134,7 +134,7 @@ describe('openlayers_WebMap', () => {
134134
const webmap = new WebMap(id, { server: server });
135135
spyOn(webmap, 'formatCookieLang').and.returnValue('zh-CN');
136136
spyOn(navigator, 'language').and.returnValue('en-US');
137-
137+
138138
const lang = webmap.getLang();
139139
expect(lang).toBe('zh-CN');
140140
expect(webmap.formatCookieLang).toHaveBeenCalledWith('zh');
@@ -151,7 +151,7 @@ describe('openlayers_WebMap', () => {
151151
},
152152
writable: true
153153
});
154-
154+
155155
const lang = webmap.getLang();
156156
expect(lang).toBe('fr-FR');
157157
});
@@ -167,7 +167,7 @@ describe('openlayers_WebMap', () => {
167167
},
168168
writable: true
169169
});
170-
170+
171171
const lang = webmap.getLang();
172172
expect(lang).toBe('de-DE');
173173
});
@@ -178,14 +178,14 @@ describe('openlayers_WebMap', () => {
178178
spyOn(webmap, 'isFirefox').and.returnValue(false);
179179
spyOn(webmap, 'isChrome').and.returnValue(false);
180180
spyOn(FetchRequest, 'get').and.returnValue(Promise.resolve(new Response('', { status: 200 })));
181-
181+
182182
const url = 'http://fakeurl';
183183
const token = null;
184184
const proxy = false;
185-
185+
186186
const promise = webmap.isSupportWebp(url, token, proxy);
187187
expect(Promise.resolve(promise)).toBe(promise); // 检查返回值是否为Promise
188-
188+
189189
promise.then((result) => {
190190
expect(result).toBe(true);
191191
expect(FetchRequest.get).toHaveBeenCalled();
@@ -196,11 +196,11 @@ describe('openlayers_WebMap', () => {
196196
it('isSupportWebp_IE_not_support', () => {
197197
const webmap = new WebMap(id, { server: server });
198198
spyOn(webmap, 'isIE').and.returnValue(true);
199-
199+
200200
const url = 'http://fakeurl';
201201
const token = null;
202202
const proxy = false;
203-
203+
204204
const result = webmap.isSupportWebp(url, token, proxy);
205205
expect(result).toBe(false);
206206
});
@@ -210,11 +210,11 @@ describe('openlayers_WebMap', () => {
210210
spyOn(webmap, 'isIE').and.returnValue(false);
211211
spyOn(webmap, 'isFirefox').and.returnValue(true);
212212
spyOn(webmap, 'getFirefoxVersion').and.returnValue(60);
213-
213+
214214
const url = 'http://fakeurl';
215215
const token = null;
216216
const proxy = false;
217-
217+
218218
const result = webmap.isSupportWebp(url, token, proxy);
219219
expect(result).toBe(false);
220220
});
@@ -225,11 +225,11 @@ describe('openlayers_WebMap', () => {
225225
spyOn(webmap, 'isFirefox').and.returnValue(false);
226226
spyOn(webmap, 'isChrome').and.returnValue(true);
227227
spyOn(webmap, 'getChromeVersion').and.returnValue(25);
228-
228+
229229
const url = 'http://fakeurl';
230230
const token = null;
231231
const proxy = false;
232-
232+
233233
const result = webmap.isSupportWebp(url, token, proxy);
234234
expect(result).toBe(false);
235235
});
@@ -240,14 +240,14 @@ describe('openlayers_WebMap', () => {
240240
spyOn(webmap, 'isFirefox').and.returnValue(false);
241241
spyOn(webmap, 'isChrome').and.returnValue(false);
242242
spyOn(FetchRequest, 'get').and.returnValue(Promise.reject(new Error('Network error')));
243-
243+
244244
const url = 'http://fakeurl';
245245
const token = null;
246246
const proxy = false;
247-
247+
248248
const promise = webmap.isSupportWebp(url, token, proxy);
249249
expect(Promise.resolve(promise)).toBe(promise); // 检查返回值是否为Promise
250-
250+
251251
promise.then((result) => {
252252
expect(result).toBe(false);
253253
done();
@@ -256,49 +256,171 @@ describe('openlayers_WebMap', () => {
256256

257257
it('renameLayerId_no_duplicate', () => {
258258
const webmap = new WebMap(id, { server: server });
259-
259+
260260
const layers = [{ id: 'layer1' }, { id: 'layer2' }];
261261
const curLayer = { id: 'layer3' };
262-
262+
263263
webmap.renameLayerId(layers, curLayer);
264-
264+
265265
// 没有重复应该保持不变
266266
expect(curLayer.id).toBe('layer3');
267267
});
268268

269269
it('renameLayerId_with_duplicate', () => {
270270
const webmap = new WebMap(id, { server: server });
271-
271+
272272
const layers = [{ id: 'layer1' }, { id: 'layer2' }];
273273
const curLayer = { id: 'layer1' };
274-
274+
275275
webmap.renameLayerId(layers, curLayer);
276-
276+
277277
// 有重复应该添加(1)后缀
278278
expect(curLayer.id).toBe('layer1(1)');
279279
});
280280

281281
it('renameLayerId_with_duplicate_and_existing_suffix', () => {
282282
const webmap = new WebMap(id, { server: server });
283-
283+
284284
const layers = [{ id: 'layer1' }, { id: 'layer1(1)' }];
285285
const curLayer = { id: 'layer1' };
286-
286+
287287
webmap.renameLayerId(layers, curLayer);
288-
288+
289289
// 如果已经存在带后缀的图层,应该递增
290290
expect(curLayer.id).toBe('layer1(2)');
291291
});
292292

293293
it('renameLayerId_recursive_rename_if_still_duplicate', () => {
294294
const webmap = new WebMap(id, { server: server });
295-
295+
296296
const layers = [{ id: 'layer1' }, { id: 'layer1(1)' }];
297297
const curLayer = { id: 'layer1' };
298-
298+
299299
webmap.renameLayerId(layers, curLayer);
300-
300+
301301
// 如果重命名后仍然重复,应该再次递增
302302
expect(curLayer.id).toBe('layer1(2)');
303303
});
304-
});
304+
it('webmap_relationRestData', (done) => {
305+
let options = {
306+
server: server,
307+
successCallback,
308+
errorCallback: function () {}
309+
};
310+
const datsets = [
311+
{
312+
name: 'test',
313+
type: 'POINT'
314+
}
315+
];
316+
const result1 = {
317+
fileId: 'test',
318+
datasetName: 'test',
319+
dataItemServices: [
320+
{
321+
serviceType: 'RESTMAP',
322+
accessCount: 0,
323+
address: 'http://fack:8090/iserver/services/map_sichuan-7-/rest',
324+
dataID: 1386367586,
325+
createTime: null,
326+
serviceStatus: 'PUBLISHED',
327+
editable: false,
328+
updateTime: null,
329+
serviceNode: '2e7t6p3r',
330+
serviceID: 'map_sichuan-7-',
331+
serviceName: 'map_sichuan-7-'
332+
},
333+
{
334+
serviceType: 'RESTDATA',
335+
accessCount: 0,
336+
address: 'http://fack:8090/iserver/services/data_sichuan-7-/rest',
337+
dataID: 1386367586,
338+
createTime: null,
339+
serviceStatus: 'PUBLISHED',
340+
editable: true,
341+
updateTime: null,
342+
serviceNode: '2e7t6p3r',
343+
serviceID: 'data_sichuan-7-',
344+
serviceName: 'data_sichuan-7-'
345+
}
346+
]
347+
};
348+
spyOn(FetchRequest, 'get').and.callFake((url) => {
349+
if (url.indexOf('map.json') > -1) {
350+
return Promise.resolve(new Response(accessTypeRestData));
351+
}
352+
if (url.indexOf('675746998/datasets.json') > -1) {
353+
return Promise.resolve(new Response(JSON.stringify(datsets)));
354+
}
355+
if (url.indexOf('675746998.json') > -1) {
356+
return Promise.resolve(new Response(JSON.stringify(result1)));
357+
}
358+
if (url.indexOf('data_sichuan-7-/rest/data/datasources.json') > -1) {
359+
return Promise.resolve(
360+
new Response(
361+
JSON.stringify({
362+
datasourceNames: ['supermap1_pg'],
363+
childUriList: [
364+
'http://192.168.12.230:8090/iserver/services/data_sichuan-3-/rest/data/datasources/name/supermap1_pg'
365+
],
366+
datasourceCount: 1
367+
})
368+
)
369+
);
370+
}
371+
if (url.indexOf('data_sichuan-7-/rest/data/datasources/supermap1_pg/datasets') > -1) {
372+
return Promise.resolve(
373+
new Response(
374+
JSON.stringify({
375+
datasetCount: 1,
376+
datasetNames: ['dataGeoJson_2529638'],
377+
childUriList: [
378+
'http://192.168.12.230:8090/iserver/services/data_sichuan-3-/rest/data/datasources/supermap1_pg/datasets/dataGeoJson_2529638'
379+
]
380+
})
381+
)
382+
);
383+
}
384+
return Promise.resolve(new Response(JSON.stringify({})));
385+
});
386+
spyOn(FetchRequest, 'post').and.callFake((url) => {
387+
return Promise.resolve(
388+
new Response(
389+
JSON.stringify({
390+
features: [
391+
{
392+
stringID: null,
393+
fieldNames: ['SmID', 'SORIND'],
394+
geometry: {
395+
center: {
396+
x: -93.716546,
397+
y: 29.668007
398+
},
399+
parts: [1],
400+
style: null,
401+
prjCoordSys: null,
402+
id: 222,
403+
type: 'POINT',
404+
partTopo: null,
405+
points: [
406+
{
407+
x: -93.716546,
408+
y: 29.668007
409+
}
410+
]
411+
},
412+
fieldValues: ['222', 'US,US,reprt,USCG OPFAC'],
413+
ID: 222
414+
}
415+
]
416+
})
417+
)
418+
);
419+
});
420+
var datavizWebmap = new WebMap(id, options);
421+
422+
async function successCallback() {
423+
done();
424+
}
425+
});
426+
});

0 commit comments

Comments
 (0)