@@ -5,40 +5,40 @@ var fgbUrl = 'base/resources/data/capitals_data20.fgb';
55// var url = 'https://iserver.supermap.io/iserver/services/map-china400/rest/maps/ChinaDark/zxyTileImage.png?z={z}&x={x}&y={y}'
66describe ( 'maplibregl_FGBLayer' , ( ) => {
77 var originalTimeout ;
8- var testDiv , map ;
8+ var testDiv , map , fgblayer ;
99 beforeAll ( ( done ) => {
10- testDiv = window . document . createElement ( 'div' ) ;
11- testDiv . setAttribute ( 'id' , 'map' ) ;
12- testDiv . style . styleFloat = 'left' ;
13- testDiv . style . marginLeft = '8px' ;
14- testDiv . style . marginTop = '50px' ;
15- testDiv . style . width = '500px' ;
16- testDiv . style . height = '500px' ;
17- window . document . body . appendChild ( testDiv ) ;
18- map = new maplibregl . Map ( {
19- container : 'map' ,
20- style : {
21- version : 8 ,
22- sources : {
23-
24- } ,
25- layers : [
26-
27- ]
28- } ,
29- center : [ 0 , 0 ] ,
30- zoom : 3
31- } ) ;
32- map . on ( 'load' , function ( ) {
33- done ( ) ;
34- } ) ;
35- } , 50000 ) ;
10+ testDiv = window . document . createElement ( 'div' ) ;
11+ testDiv . setAttribute ( 'id' , 'map' ) ;
12+ testDiv . style . styleFloat = 'left' ;
13+ testDiv . style . marginLeft = '8px' ;
14+ testDiv . style . marginTop = '50px' ;
15+ testDiv . style . width = '500px' ;
16+ testDiv . style . height = '500px' ;
17+ window . document . body . appendChild ( testDiv ) ;
18+ map = new maplibregl . Map ( {
19+ container : 'map' ,
20+ style : {
21+ version : 8 ,
22+ sources : { } ,
23+ layers : [ ]
24+ } ,
25+ center : [ 0 , 0 ] ,
26+ zoom : 3
27+ } ) ;
28+ map . on ( 'load' , function ( ) {
29+ done ( ) ;
30+ } ) ;
31+ } , 50000 ) ;
3632 beforeEach ( ( ) => {
3733 originalTimeout = jasmine . DEFAULT_TIMEOUT_INTERVAL ;
3834 jasmine . DEFAULT_TIMEOUT_INTERVAL = 50000 ;
3935 } ) ;
4036
4137 afterEach ( ( ) => {
38+ if ( fgblayer ) {
39+ map . removeLayer ( fgblayer . id ) ;
40+ fgblayer = null ;
41+ }
4242 jasmine . DEFAULT_TIMEOUT_INTERVAL = originalTimeout ;
4343 } ) ;
4444
@@ -49,80 +49,101 @@ describe('maplibregl_FGBLayer', () => {
4949
5050 it ( 'load bbox' , ( done ) => {
5151 var count = 0 ;
52- var fgblayer = new FGBLayer ( {
52+ fgblayer = new FGBLayer ( {
5353 url : fgbUrl ,
5454 featureLoader : function ( feature ) {
5555 expect ( [ '圣多美' , '蒙罗维亚' ] . includes ( feature . properties [ 'CAPITAL' ] ) ) . toBeTrue ( ) ;
5656 count ++ ;
57- if ( count === 2 ) {
58- done ( ) ;
59- }
6057 return feature ;
6158 }
6259 } ) ;
63- fgblayer . onAdd ( map ) ;
64- expect ( fgblayer . strategy ) . toBe ( 'bbox' ) ;
65- expect ( fgblayer ) . not . toBeNull ( ) ;
66- expect ( fgblayer . url ) . toBe ( fgbUrl ) ;
60+ // fgblayer.onAdd(map);
61+ map . addLayer ( fgblayer ) ;
62+ var cb = ( ) => {
63+ if ( fgblayer && map . getLayer ( fgblayer . layerId ) ) {
64+ map . off ( 'sourcedata' , cb ) ;
65+ expect ( fgblayer . strategy ) . toBe ( 'bbox' ) ;
66+ expect ( fgblayer ) . not . toBeNull ( ) ;
67+ expect ( fgblayer . url ) . toBe ( fgbUrl ) ;
68+ expect ( count ) . toBe ( 2 ) ;
69+ done ( ) ;
70+ }
71+ } ;
72+ map . on ( 'sourcedata' , cb ) ;
6773 } ) ;
6874
6975 it ( 'load all' , ( done ) => {
7076 var count = 0 ;
71- var fgblayer = new FGBLayer ( {
77+ fgblayer = new FGBLayer ( {
7278 url : fgbUrl ,
7379 strategy : 'all' ,
7480 featureLoader : function ( feature ) {
7581 count ++ ;
76- if ( count === 19 ) {
77- done ( ) ;
78- }
7982 return feature ;
8083 }
8184 } ) ;
82- fgblayer . onAdd ( map ) ;
83- expect ( fgblayer . url ) . toBe ( fgbUrl ) ;
85+ map . addLayer ( fgblayer ) ;
86+
87+ var cb = ( ) => {
88+ if ( fgblayer && map . getLayer ( fgblayer . layerId ) ) {
89+ map . off ( 'sourcedata' , cb ) ;
90+ expect ( fgblayer . url ) . toBe ( fgbUrl ) ;
91+ expect ( count ) . toBe ( 19 ) ;
92+ done ( ) ;
93+ }
94+ } ;
95+ map . on ( 'sourcedata' , cb ) ;
8496 } ) ;
8597
86- xit ( 'set extent' , ( done ) => {
98+ it ( 'set extent' , ( done ) => {
8799 var count = 0 ;
88- var fgblayer = new FGBLayer ( {
100+ fgblayer = new FGBLayer ( {
89101 url : fgbUrl ,
90102 extent : [ 0 , 0 , 21 , 21 ] ,
91103 featureLoader : function ( feature ) {
92104 count ++ ;
93- console . log ( count , feature . properties ) ;
94105 expect ( feature . properties [ 'CAPITAL' ] ) . toBe ( '圣多美' ) ;
95- done ( ) ;
96106 return feature ;
97107 }
98108 } ) ;
99- fgblayer . onAdd ( map ) ;
100- expect ( fgblayer ) . not . toBeNull ( ) ;
101- expect ( fgblayer . url ) . toBe ( fgbUrl ) ;
109+ map . addLayer ( fgblayer ) ;
110+
111+ var cb = ( ) => {
112+ if ( fgblayer && map . getLayer ( fgblayer . layerId ) ) {
113+ map . off ( 'sourcedata' , cb ) ;
114+ expect ( fgblayer ) . not . toBeNull ( ) ;
115+ expect ( fgblayer . url ) . toBe ( fgbUrl ) ;
116+ expect ( count ) . toBe ( 1 ) ;
117+ done ( ) ;
118+ }
119+ } ;
120+ map . on ( 'sourcedata' , cb ) ;
102121 } ) ;
103122
104- xit ( 'render moveLayer onRemove setVisibility' , ( done ) => {
123+ it ( 'render moveLayer onRemove setVisibility' , ( done ) => {
105124 var count = 0 ;
106- var fgblayer = new FGBLayer ( {
125+ fgblayer = new FGBLayer ( {
107126 url : fgbUrl ,
108127 extent : [ 0 , 0 , 21 , 21 ] ,
109128 featureLoader : function ( feature ) {
110129 count ++ ;
111- console . log ( count , feature . properties ) ;
112130 expect ( feature . properties [ 'CAPITAL' ] ) . toBe ( '圣多美' ) ;
113- done ( ) ;
114131 return feature ;
115132 }
116133 } ) ;
117- fgblayer . onAdd ( map ) ;
134+ map . addLayer ( fgblayer ) ;
118135 fgblayer . render ( ) ;
119- while ( map . getLayer ( fgblayer . layerId ) ) {
120- fgblayer . moveLayer ( fgblayer . layerId , 'simple-tiles' ) ;
121- console . log ( map . getStyle ( ) )
122- fgblayer . setVisibility ( false ) ;
123- fgblayer . onRemove ( ) ;
124- expect ( fgblayer ) . not . toBeNull ( ) ;
125- }
126- } ) ;
127136
137+ var cb = ( ) => {
138+ if ( fgblayer && map . getLayer ( fgblayer . layerId ) ) {
139+ fgblayer . moveLayer ( fgblayer . id ) ;
140+ fgblayer . setVisibility ( false ) ;
141+ map . removeLayer ( fgblayer . id ) ;
142+ fgblayer = null ;
143+ expect ( count ) . toBe ( 1 ) ;
144+ done ( ) ;
145+ }
146+ } ;
147+ map . on ( 'sourcedata' , cb ) ;
148+ } ) ;
128149} ) ;
0 commit comments