Replaces regularshape.tests.js with new tests
Transforms the old rendering tests for the regularshape to the new rendering test approach.
This commit is contained in:
BIN
rendering/cases/regularshape-style/expected.png
Normal file
BIN
rendering/cases/regularshape-style/expected.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
114
rendering/cases/regularshape-style/main.js
Normal file
114
rendering/cases/regularshape-style/main.js
Normal file
@@ -0,0 +1,114 @@
|
||||
import Feature from '../../../src/ol/Feature.js';
|
||||
import Point from '../../../src/ol/geom/Point.js';
|
||||
import Map from '../../../src/ol/Map.js';
|
||||
import View from '../../../src/ol/View.js';
|
||||
import VectorLayer from '../../../src/ol/layer/Vector.js';
|
||||
import VectorSource from '../../../src/ol/source/Vector.js';
|
||||
import Fill from '../../../src/ol/style/Fill.js';
|
||||
import RegularShape from '../../../src/ol/style/RegularShape.js';
|
||||
import Style from '../../../src/ol/style/Style.js';
|
||||
import Stroke from '../../../src/ol/style/Stroke.js';
|
||||
|
||||
const vectorSource = new VectorSource();
|
||||
function createFeatures(stroke, fill, offSet = [0, 0]) {
|
||||
let feature;
|
||||
feature = new Feature({
|
||||
geometry: new Point([-15 + offSet[0], 15 + offSet[1]])
|
||||
});
|
||||
// square
|
||||
feature.setStyle(new Style({
|
||||
image: new RegularShape({
|
||||
fill: fill,
|
||||
stroke: stroke,
|
||||
points: 4,
|
||||
radius: 10,
|
||||
angle: Math.PI / 4
|
||||
})
|
||||
}));
|
||||
vectorSource.addFeature(feature);
|
||||
|
||||
feature = new Feature({
|
||||
geometry: new Point([8 + offSet[0], 15 + offSet[1]])
|
||||
});
|
||||
// triangle
|
||||
feature.setStyle(new Style({
|
||||
image: new RegularShape({
|
||||
fill: fill,
|
||||
stroke: stroke,
|
||||
points: 3,
|
||||
radius: 10,
|
||||
rotation: Math.PI / 4,
|
||||
angle: 0
|
||||
})
|
||||
}));
|
||||
vectorSource.addFeature(feature);
|
||||
|
||||
feature = new Feature({
|
||||
geometry: new Point([-10 + offSet[0], -8 + offSet[1]])
|
||||
});
|
||||
// star
|
||||
feature.setStyle(new Style({
|
||||
image: new RegularShape({
|
||||
fill: fill,
|
||||
stroke: stroke,
|
||||
points: 5,
|
||||
radius: 10,
|
||||
radius2: 4,
|
||||
angle: 0
|
||||
})
|
||||
}));
|
||||
vectorSource.addFeature(feature);
|
||||
|
||||
feature = new Feature({
|
||||
geometry: new Point([12 + offSet[0], -8 + offSet[1]])
|
||||
});
|
||||
// cross
|
||||
feature.setStyle(new Style({
|
||||
image: new RegularShape({
|
||||
fill: fill,
|
||||
stroke: stroke,
|
||||
points: 4,
|
||||
radius: 10,
|
||||
radius2: 0,
|
||||
angle: 0
|
||||
})
|
||||
}));
|
||||
vectorSource.addFeature(feature);
|
||||
}
|
||||
|
||||
createFeatures(
|
||||
new Stroke({width: 2}),
|
||||
new Fill({color: 'red'})
|
||||
);
|
||||
createFeatures(
|
||||
new Stroke({
|
||||
lineDash: [10, 5]
|
||||
}),
|
||||
null,
|
||||
[50, 50]
|
||||
);
|
||||
createFeatures(
|
||||
new Stroke({
|
||||
lineDash: [10, 5],
|
||||
lineDashOffset: 5
|
||||
}),
|
||||
null,
|
||||
[-50, -50]
|
||||
);
|
||||
|
||||
createFeatures(new Stroke(), new Fill(), [50, -50]);
|
||||
|
||||
const vectorLayer = new VectorLayer({
|
||||
source: vectorSource
|
||||
});
|
||||
|
||||
new Map({
|
||||
target: 'map',
|
||||
layers: [vectorLayer],
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
resolution: 1
|
||||
})
|
||||
});
|
||||
|
||||
render();
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.0 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 819 B |
Binary file not shown.
|
Before Width: | Height: | Size: 831 B |
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,150 +0,0 @@
|
||||
import Feature from '../../../../src/ol/Feature.js';
|
||||
import Point from '../../../../src/ol/geom/Point.js';
|
||||
import Map from '../../../../src/ol/Map.js';
|
||||
import View from '../../../../src/ol/View.js';
|
||||
import VectorLayer from '../../../../src/ol/layer/Vector.js';
|
||||
import VectorSource from '../../../../src/ol/source/Vector.js';
|
||||
import Fill from '../../../../src/ol/style/Fill.js';
|
||||
import RegularShape from '../../../../src/ol/style/RegularShape.js';
|
||||
import Style from '../../../../src/ol/style/Style.js';
|
||||
import Stroke from '../../../../src/ol/style/Stroke.js';
|
||||
|
||||
|
||||
describe('ol.rendering.style.RegularShape', function() {
|
||||
|
||||
let map, vectorSource;
|
||||
|
||||
function createMap(renderer) {
|
||||
const MapConstructor = Map;
|
||||
const LayerConstructor = VectorLayer;
|
||||
|
||||
vectorSource = new VectorSource();
|
||||
const vectorLayer = new LayerConstructor({
|
||||
source: vectorSource
|
||||
});
|
||||
|
||||
map = new MapConstructor({
|
||||
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;
|
||||
}
|
||||
});
|
||||
|
||||
function createFeatures(stroke, fill) {
|
||||
let feature;
|
||||
feature = new Feature({
|
||||
geometry: new Point([-15, 15])
|
||||
});
|
||||
// square
|
||||
feature.setStyle(new Style({
|
||||
image: new RegularShape({
|
||||
fill: fill,
|
||||
stroke: stroke,
|
||||
points: 4,
|
||||
radius: 10,
|
||||
angle: Math.PI / 4
|
||||
})
|
||||
}));
|
||||
vectorSource.addFeature(feature);
|
||||
|
||||
feature = new Feature({
|
||||
geometry: new Point([8, 15])
|
||||
});
|
||||
// triangle
|
||||
feature.setStyle(new Style({
|
||||
image: new RegularShape({
|
||||
fill: fill,
|
||||
stroke: stroke,
|
||||
points: 3,
|
||||
radius: 10,
|
||||
rotation: Math.PI / 4,
|
||||
angle: 0
|
||||
})
|
||||
}));
|
||||
vectorSource.addFeature(feature);
|
||||
|
||||
feature = new Feature({
|
||||
geometry: new Point([-10, -8])
|
||||
});
|
||||
// star
|
||||
feature.setStyle(new Style({
|
||||
image: new RegularShape({
|
||||
fill: fill,
|
||||
stroke: stroke,
|
||||
points: 5,
|
||||
radius: 10,
|
||||
radius2: 4,
|
||||
angle: 0
|
||||
})
|
||||
}));
|
||||
vectorSource.addFeature(feature);
|
||||
|
||||
feature = new Feature({
|
||||
geometry: new Point([12, -8])
|
||||
});
|
||||
// cross
|
||||
feature.setStyle(new Style({
|
||||
image: new RegularShape({
|
||||
fill: fill,
|
||||
stroke: stroke,
|
||||
points: 4,
|
||||
radius: 10,
|
||||
radius2: 0,
|
||||
angle: 0
|
||||
})
|
||||
}));
|
||||
vectorSource.addFeature(feature);
|
||||
}
|
||||
|
||||
|
||||
describe('#render', function() {
|
||||
const stroke = new Stroke({width: 2});
|
||||
const fill = new Fill({color: 'red'});
|
||||
|
||||
it('tests the canvas renderer', function(done) {
|
||||
createMap('canvas');
|
||||
createFeatures(stroke, fill);
|
||||
expectResemble(map, 'rendering/ol/style/expected/regularshape-canvas.png', 9.4, done);
|
||||
});
|
||||
|
||||
it('supports lineDash', function(done) {
|
||||
createMap('canvas');
|
||||
createFeatures(new Stroke({
|
||||
lineDash: [10, 5]
|
||||
}));
|
||||
expectResemble(map, 'rendering/ol/style/expected/regularshape-canvas-linedash.png', 5, done);
|
||||
});
|
||||
|
||||
it('supports lineDashOffset', function(done) {
|
||||
createMap('canvas');
|
||||
createFeatures(new Stroke({
|
||||
lineDash: [10, 5],
|
||||
lineDashOffset: 5
|
||||
}));
|
||||
expectResemble(map, 'rendering/ol/style/expected/regularshape-canvas-linedashoffset.png', 5, done);
|
||||
});
|
||||
});
|
||||
|
||||
describe('uses the default fill and stroke color', function() {
|
||||
const stroke = new Stroke();
|
||||
const fill = new Fill();
|
||||
|
||||
it('tests the canvas renderer', function(done) {
|
||||
createMap('canvas');
|
||||
createFeatures(stroke, fill);
|
||||
expectResemble(map, 'rendering/ol/style/expected/regularshape-canvas-default-style.png', 3.0, done);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user