@@ -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