@@ -38,6 +38,7 @@ describe('maplibregl-webmap3.0', () => {
3838 originalTimeout = jasmine . DEFAULT_TIMEOUT_INTERVAL ;
3939 jasmine . DEFAULT_TIMEOUT_INTERVAL = 50000 ;
4040 maplibregl . Map . prototype . overlayLayersManager = { } ;
41+ mbglmap . prototype . getL7Scene = maplibregl . Map . prototype . getL7Scene ;
4142 } ) ;
4243 afterEach ( ( ) => {
4344 if ( mapstudioWebmap && mapstudioWebmap . map ) {
@@ -47,6 +48,7 @@ describe('maplibregl-webmap3.0', () => {
4748 }
4849 window . document . body . removeChild ( testDiv ) ;
4950 jasmine . DEFAULT_TIMEOUT_INTERVAL = originalTimeout ;
51+ mbglmap . prototype . getL7Scene = undefined ;
5052 } ) ;
5153
5254 it ( 'initialize_background' , ( done ) => {
@@ -1196,4 +1198,65 @@ describe('maplibregl-webmap3.0', () => {
11961198 } ;
11971199 mapstudioWebmap . once ( 'mapcreatesucceeded' , callback ) ;
11981200 } ) ;
1201+
1202+ it ( 'test webmap with l7layers append l7layers' , ( done ) => {
1203+ spyOn ( MapManagerUtil , 'default' ) . and . callFake ( mbglmap ) ;
1204+ const mapInfo = JSON . parse ( mapstudioWebMap_L7Layers ) ;
1205+ spyOn ( L7 , 'PointLayer' ) . and . callFake ( mockL7 . PointLayer ) ;
1206+ spyOn ( L7 , 'LineLayer' ) . and . callFake ( mockL7 . PointLayer ) ;
1207+ spyOn ( L7 , 'PolygonLayer' ) . and . callFake ( mockL7 . PointLayer ) ;
1208+ spyOn ( L7 , 'HeatmapLayer' ) . and . callFake ( mockL7 . PointLayer ) ;
1209+ spyOn ( L7 , 'Scene' ) . and . callFake ( mockL7 . Scene ) ;
1210+ spyOn ( L7 , 'Maplibre' ) . and . callFake ( mockL7 . Maplibre ) ;
1211+ spyOn ( FetchRequest , 'get' ) . and . callFake ( ( url ) => {
1212+ if ( url . indexOf ( 'web/config/portal.json' ) > - 1 ) {
1213+ return Promise . resolve ( new Response ( JSON . stringify ( iportal_serviceProxy ) ) ) ;
1214+ }
1215+ if ( url . indexOf ( 'map.json' ) > - 1 ) {
1216+ return Promise . resolve ( new Response ( JSON . stringify ( { ...mapInfo , crs : 'EPSG:3857' } ) ) ) ;
1217+ }
1218+ if ( url . indexOf ( '617580084.json' ) > - 1 ) {
1219+ return Promise . resolve ( new Response ( msProjectINfo_L7Layers ) ) ;
1220+ }
1221+ if ( url . indexOf ( '/sprite' ) > - 1 ) {
1222+ return Promise . resolve ( new Response ( msSpriteInfo ) ) ;
1223+ }
1224+ if ( url . indexOf ( '/web/datas/1052943054/structureddata/ogc-features/collections/all/items.json' ) > - 1 ) {
1225+ return Promise . resolve ( new Response ( l7StructureData1052943054Items ) ) ;
1226+ }
1227+ if ( url . indexOf ( '/web/datas/1052943054/structureddata.json' ) > - 1 ) {
1228+ return Promise . resolve ( new Response ( l7StructureData1052943054 ) ) ;
1229+ }
1230+ if ( url . indexOf ( '/web/datas/1767084124/structureddata/ogc-features/collections/all/items.json' ) > - 1 ) {
1231+ return Promise . resolve ( new Response ( l7StructureData1767084124Items ) ) ;
1232+ }
1233+ if ( url . indexOf ( '/web/datas/1767084124/structureddata.json' ) > - 1 ) {
1234+ return Promise . resolve ( new Response ( l7StructureData1767084124 ) ) ;
1235+ }
1236+ return Promise . resolve ( ) ;
1237+ } ) ;
1238+ mapstudioWebmap = new WebMap (
1239+ id ,
1240+ {
1241+ server : server
1242+ }
1243+ ) ;
1244+ mapstudioWebmap . once ( 'mapcreatesucceeded' , ( { map : firstMap , layers : firstLayersList } ) => {
1245+ expect ( firstMap ) . not . toBeUndefined ( ) ;
1246+ const style = firstMap . getStyle ( ) ;
1247+ expect ( style . layers . length ) . toEqual ( mapInfo . layers . length ) ;
1248+ const webMap1 = new WebMap ( id , { server, map : firstMap } ) ;
1249+ webMap1 . once ( 'mapcreatesucceeded' , ( { map, layers } ) => {
1250+ expect ( map ) . toEqual ( firstMap ) ;
1251+ expect ( layers . length ) . toBe ( firstLayersList . length ) ;
1252+ expect ( map . $l7scene ) . not . toBeUndefined ( ) ;
1253+ const mapSpy = spyOn ( map , 'remove' ) ;
1254+ const sceneSpy = spyOn ( map . $l7scene , 'removeAllLayer' ) ;
1255+ webMap1 . cleanLayers ( ) ;
1256+ expect ( mapSpy ) . not . toHaveBeenCalled ( ) ;
1257+ expect ( sceneSpy ) . not . toHaveBeenCalled ( ) ;
1258+ done ( ) ;
1259+ } ) ;
1260+ } ) ;
1261+ } ) ;
11991262} ) ;
0 commit comments