Skip to content

Commit ba7bef4

Browse files
补充mapboxgl下的UT
1 parent b4a8f39 commit ba7bef4

File tree

6 files changed

+546
-3
lines changed

6 files changed

+546
-3
lines changed

test/leaflet/overlay/GraphThemeLayerSpec.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ describe('leaflet_testGraphThemeLayer', function () {
235235
graphThemeLayer.addFeatures(features);
236236
expect(graphThemeLayer.features.length).toBeGreaterThan(0);
237237
graphThemeLayer.removeFeatures();
238+
expect(graphThemeLayer.features.length).toBeGreaterThan(0);
238239
graphThemeLayer.removeAllFeatures();
239240
expect(graphThemeLayer.features.length).toEqual(0);
240241
graphThemeLayer.clear();

test/mapboxgl/overlay/GraphThemeLayerSpec.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,6 @@ describe('mapboxgl_testGraphThemeLayer', function () {
104104
expect(graphThemeLayer.isOverLay).toBeTruthy();
105105
expect(graphThemeLayer.themeFields.length).toEqual(5);
106106
graphThemeLayer.clear();
107-
//graphThemeLayer.destroy();
108-
//expect(graphThemeLayer).not.toBeNull();
109107
});
110108

111109
it('setChartsType', function () {
@@ -204,6 +202,7 @@ describe('mapboxgl_testGraphThemeLayer', function () {
204202
expect(redraw).toBeTruthy();
205203
expect(graphThemeLayer.features[0].geometry.x).toEqual(39);
206204
graphThemeLayer.removeFeatures();
205+
expect(graphThemeLayer.features.length).toBeGreaterThan(0);
207206
graphThemeLayer.removeAllFeatures();
208207
expect(graphThemeLayer.features.length).toEqual(0);
209208
graphThemeLayer.clear();
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
require('../../../src/mapboxgl/overlay/RangeThemeLayer');
2+
var mapboxgl = require('mapbox-gl');
3+
window.mapboxgl = mapboxgl;
4+
5+
var baseUrl = GlobeParameter.jingjinMapURL + "/maps/京津地区地图",
6+
dataUrl = GlobeParameter.editServiceURL_leaflet;
7+
describe('mapboxgl_testRangeThemeLayer', function () {
8+
var originalTimeout;
9+
var testDiv, map;
10+
beforeAll(function () {
11+
testDiv = window.document.createElement("div");
12+
testDiv.setAttribute("id", "map");
13+
testDiv.style.styleFloat = "left";
14+
testDiv.style.marginLeft = "8px";
15+
testDiv.style.marginTop = "50px";
16+
testDiv.style.width = "500px";
17+
testDiv.style.height = "500px";
18+
window.document.body.appendChild(testDiv);
19+
map = new mapboxgl.Map({
20+
container: 'map',
21+
style: {
22+
"version": 8,
23+
"sources": {
24+
"raster-tiles": {
25+
"type": "raster",
26+
"tiles": [baseUrl + '/zxyTileImage.png?z={z}&x={x}&y={y}'],
27+
"tileSize": 256
28+
}
29+
},
30+
"layers": [{
31+
"id": "simple-tiles",
32+
"type": "raster",
33+
"source": "raster-tiles",
34+
"minzoom": 0,
35+
"maxzoom": 22
36+
}]
37+
},
38+
center: [116.85, 39.79],
39+
zoom: 7
40+
});
41+
});
42+
beforeEach(function () {
43+
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
44+
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
45+
});
46+
afterEach(function () {
47+
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
48+
});
49+
afterAll(function () {
50+
window.document.body.removeChild(testDiv);
51+
map.remove();
52+
});
53+
54+
it('constructor, addFeatures, getShapesByFeatureID, getCacheCount, setMaxCacheCount, removeFeatures', function (done) {
55+
var themeLayer, result;
56+
var getFeatureBySQLParams = new SuperMap.GetFeaturesBySQLParameters({
57+
queryParameter: new SuperMap.FilterParameter({
58+
name: "Jingjin",
59+
attributeFilter: "SMID > -1"
60+
}),
61+
toIndex: 500,
62+
datasetNames: ["Jingjin:BaseMap_R"]
63+
});
64+
var getFeatureBySQLService = new SuperMap.GetFeaturesBySQLService(dataUrl, {
65+
format: SuperMap.DataFormat.ISERVER,
66+
eventListeners: {
67+
processCompleted: function (serviceResult) {
68+
if (serviceResult.error) {
69+
alert("error:" + JSON.stringify(serviceResult.error));
70+
return;
71+
}
72+
result = serviceResult.result;
73+
}
74+
}
75+
});
76+
getFeatureBySQLService.processAsync(getFeatureBySQLParams);
77+
setTimeout(function () {
78+
if (result && result.features) {
79+
//创建RangeThemeLayer
80+
themeLayer = new mapboxgl.supermap.RangeThemeLayer("ThemeLayer",
81+
{
82+
map: map,
83+
opacity: 0.8,
84+
style: {
85+
shadowBlur: 16,
86+
shadowColor: "#000000",
87+
fillColor: "#FFFFFF"
88+
},
89+
isHoverAble: true,
90+
highlightStyle: {
91+
stroke: true,
92+
strokeWidth: 4,
93+
strokeColor: 'blue',
94+
fillColor: "#00EEEE",
95+
fillOpacity: 0.8
96+
},
97+
themeField: "POP_DENSITY99",
98+
styleGroups: [
99+
{
100+
start: 0,
101+
end: 0.02,
102+
style: {
103+
color: '#FDE2CA'
104+
}
105+
},
106+
{
107+
start: 0.02,
108+
end: 0.04,
109+
style: {
110+
color: '#FACE9C'
111+
}
112+
},
113+
{
114+
start: 0.04,
115+
end: 0.06,
116+
style: {
117+
color: '#F09C42'
118+
}
119+
},
120+
{
121+
start: 0.06,
122+
end: 0.1,
123+
style: {
124+
color: '#D0770B'
125+
}
126+
},
127+
{
128+
start: 0.1,
129+
end: 0.2,
130+
style: {
131+
color: '#945305'
132+
}
133+
}]
134+
});
135+
expect(themeLayer.features.length).toEqual(0);
136+
var cacheCount = themeLayer.getCacheCount();
137+
expect(cacheCount).toEqual(0);
138+
//添加数据
139+
themeLayer.addFeatures(result.features);
140+
expect(themeLayer).not.toBeNull();
141+
expect(themeLayer.features.length).toBeGreaterThan(0);
142+
for (var i = 0; i < themeLayer.features.length; i++) {
143+
var features_i = themeLayer.features[i];
144+
expect(features_i.data).not.toBeNull();
145+
expect(features_i.CLASS_NAME).toBe("SuperMap.Feature.Vector");
146+
expect(features_i.id).not.toBeNull();
147+
var geometry_i = features_i.geometry;
148+
expect(geometry_i).not.toBeNull();
149+
expect(geometry_i.CLASS_NAME).toBe("SuperMap.Geometry.MultiPolygon");
150+
expect(geometry_i.bounds).not.toBeUndefined();
151+
expect(geometry_i.componentTypes).not.toBeUndefined();
152+
expect(geometry_i.components).not.toBeUndefined();
153+
expect(geometry_i.id).not.toBeUndefined();
154+
}
155+
expect(themeLayer.themeField).toBe("POP_DENSITY99");
156+
expect(themeLayer.styleGroups.length).toEqual(5);
157+
expect(themeLayer.renderer).not.toBeUndefined();
158+
expect(themeLayer.renderer).not.toBeNull();
159+
expect(themeLayer.style).not.toBeNull();
160+
expect(themeLayer.opacity).toEqual(0.8);
161+
expect(themeLayer.maxCacheCount).toBeGreaterThan(0);
162+
var shape1 = themeLayer.getShapesByFeatureID(result.features[1].id);
163+
var shape2 = themeLayer.getShapesByFeatureID();
164+
expect(shape1.length).toBeGreaterThan(0);
165+
expect(shape2.length).toBeGreaterThan(0);
166+
var cacheCount1 = themeLayer.getCacheCount();
167+
expect(cacheCount1).toBeGreaterThan(0);
168+
var maxCacheCount = themeLayer.setMaxCacheCount(10);
169+
expect(themeLayer.maxCacheCount).toEqual(10);
170+
themeLayer.removeFeatures();
171+
expect(themeLayer.features.length).toBeGreaterThan(0);
172+
themeLayer.removeAllFeatures();
173+
expect(themeLayer.features.length).toEqual(0);
174+
}
175+
themeLayer.clear();
176+
done();
177+
}, 5000)
178+
});
179+
});
180+

0 commit comments

Comments
 (0)