Files
openlayers/test/rendering/ol/style/linestring.test.js
Tim Schaub a69eeceeba Switch map and layer constructor in tests
The webgl tests do not run currently (which is why these have not been failing).
2018-11-12 14:54:12 +01:00

140 lines
3.7 KiB
JavaScript

import Feature from '../../../../src/ol/Feature.js';
import LineString from '../../../../src/ol/geom/LineString.js';
import Map from '../../../../src/ol/Map.js';
import WebGLMap from '../../../../src/ol/WebGLMap.js';
import View from '../../../../src/ol/View.js';
import VectorLayer from '../../../../src/ol/layer/Vector.js';
import WebGLVectorLayer from '../../../../src/ol/layer/Vector.js';
import VectorSource from '../../../../src/ol/source/Vector.js';
import Style from '../../../../src/ol/style/Style.js';
import Stroke from '../../../../src/ol/style/Stroke.js';
describe('ol.rendering.style.LineString', function() {
let map, vectorSource;
function createMap(renderer, opt_pixelRatio) {
const MapConstructor = renderer === 'webgl' ? WebGLMap : Map;
const LayerConstructor = renderer === 'webgl' ? WebGLVectorLayer : VectorLayer;
vectorSource = new VectorSource();
const vectorLayer = new LayerConstructor({
source: vectorSource
});
map = new MapConstructor({
pixelRatio: opt_pixelRatio || 1,
target: createMapDiv(50, 50),
layers: [vectorLayer],
view: new View({
projection: 'EPSG:4326',
center: [0, 0],
resolution: 1
})
});
}
afterEach(function() {
if (map) {
disposeMap(map);
map = null;
}
});
describe('different strokes', function() {
function createFeatures() {
let feature;
feature = new Feature({
geometry: new LineString(
[[-20, 20], [15, 20]]
)
});
feature.setStyle(new Style({
stroke: new Stroke({color: '#DE213A', width: 3})
}));
vectorSource.addFeature(feature);
feature = new Feature({
geometry: new LineString(
[[-20, 15], [15, 15]]
)
});
feature.setStyle(new Style({
stroke: new Stroke({color: '#9696EB', width: 1})
}));
vectorSource.addFeature(feature);
feature = new Feature({
geometry: new LineString(
[[-20, 10], [15, 10]]
)
});
feature.setStyle([new Style({
stroke: new Stroke({color: '#F2F211', width: 5})
}), new Style({
stroke: new Stroke({color: '#292921', width: 1})
})]);
vectorSource.addFeature(feature);
feature = new Feature({
geometry: new LineString(
[[-20, -20], [-2, 0], [15, -20]]
)
});
feature.setStyle(new Style({
stroke: new Stroke({
color: '#000000',
width: 2,
lineCap: 'square',
lineDash: [4, 8],
lineJoin: 'round'
})
}));
vectorSource.addFeature(feature);
feature = new Feature({
geometry: new LineString(
[[-20, -15], [-2, 5], [15, -15]]
)
});
feature.setStyle(new Style({
stroke: new Stroke({
color: '#000000',
width: 2,
lineCap: 'square',
lineDash: [4, 8],
lineDashOffset: 6,
lineJoin: 'round'
})
}));
vectorSource.addFeature(feature);
}
it('tests the canvas renderer', function(done) {
createMap('canvas');
createFeatures();
expectResemble(
map, 'rendering/ol/style/expected/linestring-strokes-canvas.png',
3.0, done);
});
where('WebGL').it('tests the WebGL renderer', function(done) {
assertWebGL();
createMap('webgl');
createFeatures();
expectResemble(map, 'rendering/ol/style/expected/linestring-strokes-webgl.png',
14.6, done);
});
it('tests the canvas renderer (HiDPI)', function(done) {
createMap('canvas', 2);
createFeatures();
expectResemble(
map, 'rendering/ol/style/expected/linestring-strokes-canvas-hidpi.png',
3.0, done);
});
});
});