Skip to content

Commit 4cbb70d

Browse files
committed
[ut] add ut
1 parent 5232a6f commit 4cbb70d

2 files changed

Lines changed: 782 additions & 0 deletions

File tree

‎test/mapboxgl/mapping/WebMapV2Spec.js‎

Lines changed: 391 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2274,4 +2274,395 @@ describe('mapboxgl_WebMapV2', () => {
22742274
done();
22752275
});
22762276
});
2277+
2278+
it('initial_serverUrl', (done) => {
2279+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2280+
if (url.indexOf('map.json') > -1) {
2281+
return Promise.resolve(new Response(JSON.stringify(uniqueLayer_point)));
2282+
} else if (url.indexOf('content.json?') > -1) {
2283+
return Promise.resolve(new Response(layerData_CSV));
2284+
} else if (url.indexOf('portal.json') > -1) {
2285+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2286+
}
2287+
return Promise.resolve();
2288+
});
2289+
var datavizWebmap = new WebMap(id, {
2290+
server: server
2291+
});
2292+
datavizWebmap.on('addlayerssucceeded', () => {
2293+
expect(datavizWebmap.options.serverUrl).toBe('http://fack:8190/iportal/');
2294+
done();
2295+
});
2296+
});
2297+
2298+
it('initial_markerLayer', (done) => {
2299+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2300+
if (url.indexOf('map.json') > -1) {
2301+
return Promise.resolve(new Response(JSON.stringify(markerLayer)));
2302+
} else if (url.indexOf('123456/content.json') > -1) {
2303+
return Promise.resolve(new Response(JSON.stringify(markerData2)));
2304+
} else if (url.indexOf('portal.json') > -1) {
2305+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2306+
}
2307+
return Promise.resolve();
2308+
});
2309+
var datavizWebmap = new WebMap(123456, {
2310+
server: server
2311+
});
2312+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2313+
expect(datavizWebmap.mapId).toEqual(123456);
2314+
expect(datavizWebmap.options.serverUrl).toBe('http://fack:8190/iportal/');
2315+
const layers = map.getStyle().layers;
2316+
expect(layers.length).toBe(2);
2317+
const markerLayer = layers[1];
2318+
expect(markerLayer.type).toBe('symbol');
2319+
expect(markerLayer.layout['icon-image']).toBe(
2320+
'http://fakeiportal/iportal/apps/dataviz/static/imgs/markers/ktv_red.png'
2321+
);
2322+
done();
2323+
});
2324+
});
2325+
2326+
it('initial_heatLayer', (done) => {
2327+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2328+
if (url.indexOf('map.json') > -1) {
2329+
return Promise.resolve(new Response(JSON.stringify(heatLayer)));
2330+
} else if (url.indexOf('1920557079/content.json?') > -1) {
2331+
return Promise.resolve(new Response(JSON.stringify(chart_content)));
2332+
} else if (url.indexOf('portal.json') > -1) {
2333+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2334+
}
2335+
return Promise.resolve();
2336+
});
2337+
var datavizWebmap = new WebMap(id, {
2338+
server: server
2339+
});
2340+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2341+
expect(datavizWebmap.options.serverUrl).toBe('http://fack:8190/iportal/');
2342+
const layers = map.getStyle().layers;
2343+
expect(layers.length).toBe(2);
2344+
const heatLayer = layers[1];
2345+
expect(heatLayer.type).toBe('heatmap');
2346+
expect(heatLayer.paint['heatmap-radius']).toBe(30);
2347+
done();
2348+
});
2349+
});
2350+
2351+
it('initial_vectorLayer_point', (done) => {
2352+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2353+
if (url.indexOf('map.json') > -1) {
2354+
return Promise.resolve(new Response(JSON.stringify(vectorLayer_point)));
2355+
} else if (url.indexOf('1920557079/content.json?') > -1) {
2356+
return Promise.resolve(new Response(JSON.stringify(chart_content)));
2357+
} else if (url.indexOf('13136933/content.json?') > -1) {
2358+
return Promise.resolve(new Response(JSON.stringify(layerData_geojson['POINT_GEOJSON'])));
2359+
} else if (url.indexOf('portal.json') > -1) {
2360+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2361+
}
2362+
return Promise.resolve();
2363+
});
2364+
var datavizWebmap = new WebMap(id, {
2365+
server: server
2366+
});
2367+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2368+
expect(datavizWebmap.options.serverUrl).toBe('http://fack:8190/iportal/');
2369+
const layers = map.getStyle().layers;
2370+
expect(layers.length).toBe(5);
2371+
const vectorLayerPoint = layers[1];
2372+
expect(vectorLayerPoint.type).toBe('circle');
2373+
expect(vectorLayerPoint.paint['circle-radius']).toBe(6);
2374+
done();
2375+
});
2376+
});
2377+
2378+
it('initial_vectorLayer_line', (done) => {
2379+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2380+
if (url.indexOf('map.json') > -1) {
2381+
return Promise.resolve(new Response(JSON.stringify(vectorLayer_line)));
2382+
} else if (url.indexOf('content.json?') > -1) {
2383+
return Promise.resolve(new Response(JSON.stringify(chart_content)));
2384+
} else if (url.indexOf('portal.json') > -1) {
2385+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2386+
}
2387+
return Promise.resolve();
2388+
});
2389+
var datavizWebmap = new WebMap(id, {
2390+
server: server
2391+
});
2392+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2393+
expect(datavizWebmap.mapId).toBe(id);
2394+
expect(datavizWebmap.options.serverUrl).toBe('http://fack:8190/iportal/');
2395+
const layers = map.getStyle().layers;
2396+
expect(layers.length).toBe(2);
2397+
const vectorLayerLine = layers[1];
2398+
expect(vectorLayerLine.type).toBe('line');
2399+
expect(vectorLayerLine.paint['line-width']).toBe(7);
2400+
2401+
done();
2402+
});
2403+
});
2404+
2405+
it('initial_ranksymbolLayer', (done) => {
2406+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2407+
if (url.indexOf('map.json') > -1) {
2408+
return Promise.resolve(new Response(JSON.stringify(ranksymbolLayer)));
2409+
} else if (url.indexOf('content.json?') > -1) {
2410+
return Promise.resolve(new Response(JSON.stringify(chart_content)));
2411+
} else if (url.indexOf('portal.json') > -1) {
2412+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2413+
}
2414+
return Promise.resolve();
2415+
});
2416+
spyOn(ArrayStatistic, 'getArraySegments').and.callFake(function (array, type, segNum) {
2417+
return [
2418+
0.406820286455,
2419+
2.6944246004791665,
2420+
4.982028914503333,
2421+
7.2696332285275,
2422+
9.557237542551666,
2423+
11.844841856575833,
2424+
14.1324461706
2425+
];
2426+
});
2427+
var datavizWebmap = new WebMap(id, {
2428+
server: server
2429+
});
2430+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2431+
const layers = map.getStyle().layers;
2432+
expect(layers.length).toBe(4);
2433+
const vectorLayerPoint = layers[1];
2434+
expect(vectorLayerPoint.type).toBe('circle');
2435+
expect(vectorLayerPoint.paint['circle-radius'].length).toBeGreaterThan(0);
2436+
const labelLayer = layers[3];
2437+
expect(labelLayer.type).toBe('symbol');
2438+
expect(labelLayer.paint['text-color']).toBe('#333');
2439+
expect(labelLayer.layout['text-field']).toBe('{机场}');
2440+
done();
2441+
});
2442+
});
2443+
2444+
it('initial_uniqueLayer_polygon', (done) => {
2445+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2446+
if (url.indexOf('map.json') > -1) {
2447+
return Promise.resolve(new Response(JSON.stringify(uniqueLayer_polygon)));
2448+
} else if (url.indexOf('content.json?') > -1) {
2449+
return Promise.resolve(new Response(JSON.stringify(chart_content)));
2450+
} else if (url.indexOf('portal.json') > -1) {
2451+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2452+
}
2453+
return Promise.resolve();
2454+
});
2455+
var datavizWebmap = new WebMap(id, {
2456+
server: server
2457+
});
2458+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2459+
const layers = map.getStyle().layers;
2460+
expect(layers.length).toBe(4);
2461+
const vectorLayerPoint = layers[1];
2462+
const id = vectorLayerPoint.id;
2463+
expect(vectorLayerPoint.type).toBe('fill');
2464+
expect(vectorLayerPoint.paint['fill-color'].length).toBeGreaterThan(0);
2465+
const strokeLayer = layers[2];
2466+
expect(strokeLayer.id).toBe(`${id}-strokeLine`);
2467+
expect(strokeLayer.type).toBe('line');
2468+
expect(strokeLayer.paint['line-color']).toBe('#ffffff');
2469+
done();
2470+
});
2471+
});
2472+
2473+
it('initial_wmsLayer', (done) => {
2474+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2475+
if (url.indexOf('map.json') > -1) {
2476+
return Promise.resolve(new Response(JSON.stringify(wmsLayer)));
2477+
} else if (url.indexOf('REQUEST=GetCapabilities&SERVICE=WMS') > -1) {
2478+
return Promise.resolve(new Response(wmsCapabilitiesText));
2479+
} else if (url.indexOf('portal.json') > -1) {
2480+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2481+
}
2482+
return Promise.resolve();
2483+
});
2484+
var datavizWebmap = new WebMap(id, {
2485+
server: server
2486+
});
2487+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2488+
expect(datavizWebmap.options.serverUrl).toBe('http://fack:8190/iportal/');
2489+
done();
2490+
});
2491+
});
2492+
2493+
it('initial_TiandituLayer', (done) => {
2494+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2495+
if (url.indexOf('map.json') > -1) {
2496+
return Promise.resolve(new Response(JSON.stringify(tiandituLayer)));
2497+
} else if (url.indexOf('portal.json') > -1) {
2498+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2499+
}
2500+
return Promise.resolve();
2501+
});
2502+
var datavizWebmap = new WebMap(id, {
2503+
server: server
2504+
});
2505+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2506+
const layers = map.getStyle().layers;
2507+
expect(layers.length).toBe(2);
2508+
const tiandituLayer = layers[0];
2509+
expect(tiandituLayer.id).toBe('天地图地形');
2510+
expect(tiandituLayer.type).toBe('raster');
2511+
const labelLayer = layers[1];
2512+
expect(labelLayer.id).toBe('天地图地形-tdt-label');
2513+
done();
2514+
});
2515+
});
2516+
2517+
it('initial_xyzLayer', (done) => {
2518+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2519+
if (url.indexOf('map.json') > -1) {
2520+
return Promise.resolve(new Response(JSON.stringify(xyzLayer)));
2521+
} else if (url.indexOf('portal.json') > -1) {
2522+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2523+
}
2524+
return Promise.resolve();
2525+
});
2526+
var datavizWebmap = new WebMap(id, {
2527+
server: server
2528+
});
2529+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2530+
const layers = map.getStyle().layers;
2531+
expect(layers.length).toBe(1);
2532+
const xyzLayer = layers[0];
2533+
expect(xyzLayer.id).toBe('OpenStreetMap');
2534+
expect(xyzLayer.type).toBe('raster');
2535+
done();
2536+
});
2537+
});
2538+
2539+
it('initial_mapboxstyleLayer', (done) => {
2540+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2541+
if (url.indexOf('map.json') > -1) {
2542+
return Promise.resolve(new Response(JSON.stringify(mapboxstyleLayer)));
2543+
} else if (url.indexOf('portal.json') > -1) {
2544+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2545+
}
2546+
return Promise.resolve();
2547+
});
2548+
var datavizWebmap = new WebMap(id, {
2549+
server: server
2550+
});
2551+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2552+
expect(datavizWebmap.options.serverUrl).toBe('http://fack:8190/iportal/');
2553+
done();
2554+
});
2555+
});
2556+
2557+
it('initial_migrationLayer', (done) => {
2558+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2559+
if (url.indexOf('map.json') > -1) {
2560+
return Promise.resolve(new Response(migrationLayer));
2561+
} else if (url.indexOf('content.json?') > -1) {
2562+
return Promise.resolve(new Response(layerData_CSV));
2563+
} else if (url.indexOf('portal.json') > -1) {
2564+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2565+
}
2566+
return Promise.resolve();
2567+
});
2568+
var datavizWebmap = new WebMap(id, {
2569+
server: server
2570+
});
2571+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2572+
done();
2573+
});
2574+
});
2575+
2576+
it('initial-rangeLayer-point', (done) => {
2577+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2578+
if (url.indexOf('map.json') > -1) {
2579+
return Promise.resolve(new Response(JSON.stringify(webmap_rangeLayer)));
2580+
} else if (url.indexOf('content.json') > -1) {
2581+
return Promise.resolve(new Response(JSON.stringify(chart_content)));
2582+
} else if (url.indexOf('portal.json') > -1) {
2583+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2584+
}
2585+
return Promise.resolve();
2586+
});
2587+
var datavizWebmap = new WebMap(id, {
2588+
server: server
2589+
});
2590+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2591+
const layers = map.getStyle().layers;
2592+
expect(layers.length).toBe(2);
2593+
const rangeLayerPoint = layers[1];
2594+
const id = rangeLayerPoint.id;
2595+
expect(id).toBe('北京市轨道交通站点(9)');
2596+
expect(rangeLayerPoint.type).toBe('circle');
2597+
expect(rangeLayerPoint.paint['circle-radius']).toBe(8);
2598+
expect(rangeLayerPoint.paint['circle-color'].length).toBeGreaterThan(0);
2599+
done();
2600+
});
2601+
});
2602+
2603+
it('ISVJ-7952 CSV nullXY', (done) => {
2604+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2605+
if (url.indexOf('map.json') > -1) {
2606+
return Promise.resolve(new Response(JSON.stringify(uniqueLayer_point)));
2607+
} else if (url.indexOf('content.json?') > -1) {
2608+
return Promise.resolve(new Response(JSON.stringify(csv_nullxy_Data)));
2609+
} else if (url.indexOf('portal.json') > -1) {
2610+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2611+
}
2612+
return Promise.resolve();
2613+
});
2614+
var datavizWebmap = new WebMap(id, {
2615+
server: server
2616+
});
2617+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2618+
expect(map.getSource('民航数据')).not.toBeNull();
2619+
expect(map.getSource('民航数据')._data.features.length).toBe(1);
2620+
done();
2621+
});
2622+
});
2623+
2624+
it('bing map', (done) => {
2625+
const metaInfo = {
2626+
resourceSets: [
2627+
{
2628+
resources: [
2629+
{
2630+
__type: 'ImageryMetadata:http://schemas.microsoft.com/search/local/ws/rest/v1',
2631+
imageHeight: 256,
2632+
imageUrl:
2633+
'https://{subdomain}.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/{quadkey}?mkt=zh-CN&it=G,L&shading=hill&og=2505&n=z',
2634+
imageUrlSubdomains: ['t0', 't1', 't2', 't3'],
2635+
imageWidth: 256
2636+
}
2637+
]
2638+
}
2639+
],
2640+
statusCode: 200,
2641+
statusDescription: 'OK'
2642+
};
2643+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2644+
if (url.indexOf('map.json') > -1) {
2645+
return Promise.resolve(new Response(JSON.stringify(baseLayers['BING'])));
2646+
} else if (url.indexOf('https://dev.virtualearth.net/REST/v1/Imagery/Metadata/RoadOnDemand?uriScheme=https&include=ImageryProviders&key=AhOVlIlR89XkNyDsXBAb7TjabrEokPoqhjk4ncLm9cQkJ5ae_JyhgV1wMcWnVrko&c=zh-cn') > -1) {
2647+
return Promise.resolve(new Response(JSON.stringify(metaInfo)));
2648+
} else if (url.indexOf('portal.json') > -1) {
2649+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2650+
}
2651+
return Promise.resolve();
2652+
});
2653+
var datavizWebmap = new WebMap(id, {
2654+
server: server,
2655+
bingMapsKey: 'AhOVlIlR89XkNyDsXBAb7TjabrEokPoqhjk4ncLm9cQkJ5ae_JyhgV1wMcWnVrko'
2656+
});
2657+
2658+
datavizWebmap.on('addlayerssucceeded', ({ map }) => {
2659+
expect(map.getSource('必应地图').tiles).toEqual([
2660+
'https://t0.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/{quadkey}?mkt=zh-CN&it=G,L&shading=hill&og=2505&n=z',
2661+
'https://t1.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/{quadkey}?mkt=zh-CN&it=G,L&shading=hill&og=2505&n=z',
2662+
'https://t2.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/{quadkey}?mkt=zh-CN&it=G,L&shading=hill&og=2505&n=z',
2663+
'https://t3.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/{quadkey}?mkt=zh-CN&it=G,L&shading=hill&og=2505&n=z'
2664+
]);
2665+
done();
2666+
});
2667+
});
22772668
});

0 commit comments

Comments
 (0)