Skip to content

Commit becbde2

Browse files
[fix]UT
1 parent 003bf66 commit becbde2

File tree

5 files changed

+207
-49
lines changed

5 files changed

+207
-49
lines changed

test/mapboxgl/core/MapExtendSpec.js

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,24 @@
1+
import mapboxglMock from '../../tool/mock_mapboxgl_map';
12
import mapboxgl from 'mapbox-gl';
2-
import mbglmap from '../../tool/mock_mapboxgl_map';
33
import { FetchRequest } from '../../../src/common/util/FetchRequest';
44
import cipher from 'node-forge/lib/cipher';
55
import { MapExtend } from '../../../src/mapboxgl/core/MapExtend';
66
import { decryptSources } from '../../../src/mapboxgl/core/decryptSource';
77
import { EncryptRequest } from '../../../src/common/util/EncryptRequest';
8-
import '../../../src/mapboxgl/core/MapExtend';
98

109
describe('getServiceKey', () => {
11-
let originalTimeout;
10+
let originalTimeout, testDiv;
1211
const url = 'http:/fake:8090/iserver/iserver/services/map-China107/rest/maps/A';
13-
MapExtend;
14-
beforeEach(() => {
15-
spyOn(mapboxgl, 'Map').and.callFake(mbglmap);
16-
window.atob = () =>
17-
`ú\x86\x00ë\x14ø\n0Ø\x9C¶¬\x1D\x16ü\x99\x19rì;c\x8A\x8F\x83» þH©ü*TÂ.ÒxæêÏKëÔ|^¯à\x14*h\x96à\x80\x1E|\x8E¢\x8F)ÔÐ÷Á-/ì@iCð×F7û\x8B\x01k\x13\x18\x9BA\x88\x923]bSáÒLºÎ\v[váÐÁÆZi\x87\x1DþV\x91o\x97\x02~rÃñ¾\x051¥¬\x1CL\x01úºüê\x95\x0EEs¸/\\{6\x9A\x9DwRËÂ{¨~6T\x91\x19\x12\x1C_\x9Bb÷vhB\f{\x03éØ\x19w-Âϳ/\x1B»²C²\x1F\x97¢\x99\x88C\x8DÁCÂ8ð\x96t)ZùÞÓ\x03¨f\x1E´*\x97\x8Fµ±´í\x8B\x9ChíMlÅ\x06\x9Biþ\x03k¢\x83\x9A\x95\x8Fé\x03ùÓ¶N\x02qR?CÙê·Æ\x89\x854 ÞÐÒræéø¢]\x81ú®Ã0\x89ßMòPkå²E\x8DF\x1C¶æ\x84Bj¦\x99'[CÁ\x14ýaP\x1AÛu ×úHÃ:.\x1Eû\x0Eå\x0Féê\x91\x82ÓKÞ6T\x92é6©\x91v¨\f\x1A\x85·\x02¾\x87͵V[ç\x14DÑ8\x1Bm\x82ö\x1BBÿ\x87þí¬§f´¶\x9Fé\x1Ds¼:µt@\x15Í\x96bÛ"ý\x16~H0¥#l®\x02b`;
18-
cipher.createDecipher = () => ({
19-
start: () => {},
20-
update: () => {},
21-
finish: () => true,
22-
output: {
23-
data: `{"headers":{"X-Frame-Options":"SAMEORIGIN","Access-Control-Expose-Headers":"Access-Control-Allow-Origin,Access-Control-Allow-Credentials","Access-Control-Allow-Origin":"*","Set-Cookie":"rememberMe=deleteMe; Path=/iserver; Max-Age=0; Expires=Tue, 19-Mar-2024 01:43:12 GMT; SameSite=lax"},"data":"P8h08GonNjuCB4+CAykAGmLYwNsiv4G6H8KFrFi7Afk=","status":200}`
24-
}
25-
});
12+
beforeAll(() => {
13+
MapExtend;
14+
testDiv = window.document.createElement('div');
15+
testDiv.setAttribute('id', 'map');
16+
testDiv.style.styleFloat = 'left';
17+
testDiv.style.marginLeft = '8px';
18+
testDiv.style.marginTop = '50px';
19+
testDiv.style.width = '500px';
20+
testDiv.style.height = '500px';
21+
window.document.body.appendChild(testDiv);
2622
spyOn(FetchRequest, 'get').and.callFake((url) => {
2723
if (url.includes('map-China107')) {
2824
return Promise.resolve(
@@ -163,16 +159,25 @@ describe('getServiceKey', () => {
163159
);
164160
}
165161
});
162+
window.atob = () =>
163+
`ú\x86\x00ë\x14ø\n0Ø\x9C¶¬\x1D\x16ü\x99\x19rì;c\x8A\x8F\x83» þH©ü*TÂ.ÒxæêÏKëÔ|^¯à\x14*h\x96à\x80\x1E|\x8E¢\x8F)ÔÐ÷Á-/ì@iCð×F7û\x8B\x01k\x13\x18\x9BA\x88\x923]bSáÒLºÎ\v[váÐÁÆZi\x87\x1DþV\x91o\x97\x02~rÃñ¾\x051¥¬\x1CL\x01úºüê\x95\x0EEs¸/\\{6\x9A\x9DwRËÂ{¨~6T\x91\x19\x12\x1C_\x9Bb÷vhB\f{\x03éØ\x19w-Âϳ/\x1B»²C²\x1F\x97¢\x99\x88C\x8DÁCÂ8ð\x96t)ZùÞÓ\x03¨f\x1E´*\x97\x8Fµ±´í\x8B\x9ChíMlÅ\x06\x9Biþ\x03k¢\x83\x9A\x95\x8Fé\x03ùÓ¶N\x02qR?CÙê·Æ\x89\x854 ÞÐÒræéø¢]\x81ú®Ã0\x89ßMòPkå²E\x8DF\x1C¶æ\x84Bj¦\x99'[CÁ\x14ýaP\x1AÛu ×úHÃ:.\x1Eû\x0Eå\x0Féê\x91\x82ÓKÞ6T\x92é6©\x91v¨\f\x1A\x85·\x02¾\x87͵V[ç\x14DÑ8\x1Bm\x82ö\x1BBÿ\x87þí¬§f´¶\x9Fé\x1Ds¼:µt@\x15Í\x96bÛ"ý\x16~H0¥#l®\x02b`;
164+
cipher.createDecipher = () => ({
165+
start: () => {},
166+
update: () => {},
167+
finish: () => true,
168+
output: {
169+
data: `{"headers":{"X-Frame-Options":"SAMEORIGIN","Access-Control-Expose-Headers":"Access-Control-Allow-Origin,Access-Control-Allow-Credentials","Access-Control-Allow-Origin":"*","Set-Cookie":"rememberMe=deleteMe; Path=/iserver; Max-Age=0; Expires=Tue, 19-Mar-2024 01:43:12 GMT; SameSite=lax"},"data":"P8h08GonNjuCB4+CAykAGmLYwNsiv4G6H8KFrFi7Afk=","status":200}`
170+
}
171+
});
166172
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
167173
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
168174
});
169-
170-
afterEach(() => {
175+
afterAll(() => {
176+
document.body.removeChild(testDiv);
171177
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
172178
});
173-
174179
it('listLayers', (done) => {
175-
map = new mapboxgl.Map({
180+
const map = new mapboxgl.Map({
176181
container: 'map',
177182
style: {
178183
version: 8,
@@ -204,6 +209,8 @@ describe('getServiceKey', () => {
204209
});
205210

206211
it('getServiceKey', async () => {
212+
spyOn(mapboxgl, 'Map').and.callFake(mapboxglMock);
213+
207214
EncryptRequest.prototype.request = () => {
208215
return {
209216
json: () =>

test/mapboxgl/overlay/L7LayerSpec.js

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
import { L7Layer } from '../../../src/mapboxgl/overlay/L7Layer';
2-
import mbglmap from '../../tool/mock_mapboxgl_map';
31
import mapboxgl from 'mapbox-gl';
2+
import mbglmap from '../../tool/mock_mapboxgl_map';
3+
import * as L7 from '@supermap/mapboxgl-l7-render';
4+
import * as mockL7 from '../../tool/mock_l7';
5+
import { L7Layer } from '../../../src/mapboxgl/overlay/L7Layer';
46

57
var url = GlobeParameter.ChinaURL + '/zxyTileImage.png?z={z}&x={x}&y={y}';
68

79
describe('L7Layer', () => {
810
var originalTimeout;
9-
var testDiv, map;
11+
var testDiv, map, getL7Scene, setLayoutProperty;
1012
var data = [
1113
{
1214
id: '5011000000404',
@@ -18,7 +20,19 @@ describe('L7Layer', () => {
1820
}
1921
];
2022
beforeAll((done) => {
23+
getL7Scene = mapboxgl.Map.prototype.getL7Scene;
24+
setLayoutProperty = mapboxgl.Map.prototype.setLayoutProperty;
25+
mbglmap.prototype.getL7Scene = getL7Scene;
26+
mbglmap.prototype.setLayoutProperty = setLayoutProperty;
2127
spyOn(mapboxgl, 'Map').and.callFake(mbglmap);
28+
29+
spyOn(L7, 'PointLayer').and.callFake(mockL7.PointLayer);
30+
spyOn(L7, 'GeometryLayer').and.callFake(mockL7.GeometryLayer);
31+
spyOn(L7, 'Scene').and.callFake(mockL7.Scene);
32+
spyOn(L7, 'Mapbox').and.callFake(mockL7.Mapbox);
33+
// Scene = mockL7.Scene;
34+
// Mapbox = mockL7.Mapbox;
35+
// mapboxgl.Map.prototype.getCRS = () => ({ fromWGS84: (val) => val, getExtent: () => [] });
2236
testDiv = window.document.createElement('div');
2337
testDiv.setAttribute('id', 'map');
2438
testDiv.style.styleFloat = 'left';
@@ -49,7 +63,7 @@ describe('L7Layer', () => {
4963
]
5064
},
5165
center: [112, 37.94],
52-
zoom: 3
66+
zoom: 13
5367
});
5468
map.on('load', function () {
5569
done();
@@ -59,20 +73,17 @@ describe('L7Layer', () => {
5973
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
6074
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
6175
});
76+
6277
afterEach(() => {
6378
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
6479
});
80+
6581
afterAll(() => {
6682
document.body.removeChild(testDiv);
6783
map = null;
6884
});
6985

70-
it('getL7Scene', async () => {
71-
const scene = await map.getL7Scene();
72-
expect(scene).not.toBeNull();
73-
});
74-
75-
it('getL7Scene init', async () => {
86+
it('getL7Scene', (done) => {
7687
var layer = new L7Layer({ type: 'PointLayer' });
7788
var l7Layer = layer.getL7Layer();
7889
l7Layer
@@ -88,10 +99,11 @@ describe('L7Layer', () => {
8899
.animate(true)
89100
.size(56)
90101
.color('#4cfd47');
91-
map.addLayer(layer);
92102
expect(mapboxgl.Map.prototype.$l7scene).not.toBeNull();
93-
const scene = await map.getL7Scene();
94-
expect(scene).not.toBeNull();
103+
map.getL7Scene().then((scene) => {
104+
expect(scene).not.toBeNull();
105+
done();
106+
});
95107
});
96108

97109
it('PointLayer', (done) => {
@@ -237,17 +249,22 @@ describe('L7Layer', () => {
237249
.size(56)
238250
.color('#4cfd47');
239251
map.addLayer(layer);
252+
map.style.fire = () => {};
253+
map.style.setLayoutProperty = () => {};
254+
255+
map.overlayLayersManager = { [layer.id]: layer };
240256
expect(l7Layer).not.toBeNull();
257+
map.setLayoutProperty = setLayoutProperty;
241258

242259
spyOn(l7Layer, 'show');
243260
spyOn(l7Layer, 'hide');
244261
spyOn(map.style, 'setLayoutProperty');
245262

246-
map.setVisibility(layer.id, false);
263+
map.setLayoutProperty(layer.id, 'visibility', 'hidden');
247264
expect(l7Layer.hide).toHaveBeenCalled();
248265
expect(map.style.setLayoutProperty).toHaveBeenCalled();
249266

250-
map.setVisibility(layer.id, true);
267+
map.setLayoutProperty(layer.id, 'visibility', 'visible');
251268
expect(l7Layer.show).toHaveBeenCalled();
252269
expect(map.style.setLayoutProperty).toHaveBeenCalled();
253270

test/maplibregl/overlay/L7LayerSpec.js

Lines changed: 86 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
import { L7Layer } from '../../../src/maplibregl/overlay/L7Layer';
21
import maplibregl from 'maplibre-gl';
2+
import mbglmap from '../../tool/mock_mapboxgl_map';
3+
import * as L7 from '@supermap/maplibregl-l7-render';
4+
import * as mockL7 from '../../tool/mock_l7';
5+
import { L7Layer } from '../../../src/maplibregl/overlay/L7Layer';
36

47
var url = GlobeParameter.ChinaURL + '/zxyTileImage.png?z={z}&x={x}&y={y}';
58

69
describe('L7Layer', () => {
710
var originalTimeout;
8-
var testDiv, map;
11+
var testDiv, map, getL7Scene, setLayoutProperty;
912
var data = [
1013
{
1114
id: '5011000000404',
@@ -17,6 +20,18 @@ describe('L7Layer', () => {
1720
}
1821
];
1922
beforeAll((done) => {
23+
getL7Scene = maplibregl.Map.prototype.getL7Scene;
24+
setLayoutProperty = maplibregl.Map.prototype.setLayoutProperty;
25+
mbglmap.prototype.getL7Scene = getL7Scene;
26+
spyOn(maplibregl, 'Map').and.callFake(mbglmap);
27+
28+
spyOn(L7, 'PointLayer').and.callFake(mockL7.PointLayer);
29+
spyOn(L7, 'GeometryLayer').and.callFake(mockL7.GeometryLayer);
30+
spyOn(L7, 'Scene').and.callFake(mockL7.Scene);
31+
spyOn(L7, 'Mapbox').and.callFake(mockL7.Mapbox);
32+
// Scene = mockL7.Scene;
33+
// Mapbox = mockL7.Mapbox;
34+
// maplibregl.Map.prototype.getCRS = () => ({ fromWGS84: (val) => val, getExtent: () => [] });
2035
testDiv = window.document.createElement('div');
2136
testDiv.setAttribute('id', 'map');
2237
testDiv.style.styleFloat = 'left';
@@ -47,7 +62,7 @@ describe('L7Layer', () => {
4762
]
4863
},
4964
center: [112, 37.94],
50-
zoom: 3
65+
zoom: 13
5166
});
5267
map.on('load', function () {
5368
done();
@@ -57,20 +72,17 @@ describe('L7Layer', () => {
5772
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
5873
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
5974
});
75+
6076
afterEach(() => {
6177
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
6278
});
79+
6380
afterAll(() => {
6481
document.body.removeChild(testDiv);
6582
map = null;
6683
});
6784

68-
it('getL7Scene', async () => {
69-
const scene = await map.getL7Scene();
70-
expect(scene).not.toBeNull();
71-
});
72-
73-
it('getL7Scene init', async () => {
85+
it('getL7Scene', (done) => {
7486
var layer = new L7Layer({ type: 'PointLayer' });
7587
var l7Layer = layer.getL7Layer();
7688
l7Layer
@@ -86,10 +98,11 @@ describe('L7Layer', () => {
8698
.animate(true)
8799
.size(56)
88100
.color('#4cfd47');
89-
map.addLayer(layer);
90101
expect(maplibregl.Map.prototype.$l7scene).not.toBeNull();
91-
const scene = await map.getL7Scene();
92-
expect(scene).not.toBeNull();
102+
map.getL7Scene().then((scene) => {
103+
expect(scene).not.toBeNull();
104+
done();
105+
});
93106
});
94107

95108
it('PointLayer', (done) => {
@@ -171,6 +184,7 @@ describe('L7Layer', () => {
171184
map.removeLayer(layer.id);
172185
done();
173186
});
187+
174188
it('PointLayer rerender', (done) => {
175189
var layer = new L7Layer({ type: 'PointLayer' });
176190
var l7Layer = layer.getL7Layer();
@@ -193,4 +207,64 @@ describe('L7Layer', () => {
193207
layer.reRender();
194208
done();
195209
});
210+
211+
it('PointLayer removeLayer', (done) => {
212+
var layer = new L7Layer({ type: 'PointLayer' });
213+
var l7Layer = layer.getL7Layer();
214+
l7Layer
215+
.source(data, {
216+
parser: {
217+
type: 'json',
218+
x: 'longitude',
219+
y: 'latitude'
220+
}
221+
})
222+
.shape('circle')
223+
.active(true)
224+
.animate(true)
225+
.size(56)
226+
.color('#4cfd47');
227+
map.addLayer(layer);
228+
expect(l7Layer).not.toBeNull();
229+
expect(layer.type).toBe('custom');
230+
map.removeLayer(layer.id);
231+
done();
232+
});
233+
234+
it('PointLayer setVisibility', (done) => {
235+
var layer = new L7Layer({ type: 'PointLayer' });
236+
var l7Layer = layer.getL7Layer();
237+
l7Layer
238+
.source(data, {
239+
parser: {
240+
type: 'json',
241+
x: 'longitude',
242+
y: 'latitude'
243+
}
244+
})
245+
.shape('circle')
246+
.active(true)
247+
.animate(true)
248+
.size(56)
249+
.color('#4cfd47');
250+
map.addLayer(layer);
251+
map.style.fire = () => {};
252+
map.style.setLayoutProperty = () => {};
253+
map.overlayLayersManager = { [layer.id]: layer };
254+
expect(l7Layer).not.toBeNull();
255+
map.setLayoutProperty = setLayoutProperty;
256+
spyOn(l7Layer, 'show');
257+
spyOn(l7Layer, 'hide');
258+
spyOn(map.style, 'setLayoutProperty');
259+
260+
map.setLayoutProperty(layer.id, 'visibility', 'hidden');
261+
expect(l7Layer.hide).toHaveBeenCalled();
262+
expect(map.style.setLayoutProperty).toHaveBeenCalled();
263+
264+
map.setLayoutProperty(layer.id, 'visibility', 'visible');
265+
expect(l7Layer.show).toHaveBeenCalled();
266+
expect(map.style.setLayoutProperty).toHaveBeenCalled();
267+
268+
done();
269+
});
196270
});

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