Implement unit-tests for WebGLLayerRenderer's new preRender and postRender methods.
The test only checks if the event is fired. It does not check for the properties of the RenderEvent object.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import Feature from '../../../../../src/ol/Feature.js';
|
||||
import GeoJSON from '../../../../../src/ol/format/GeoJSON.js';
|
||||
import Point from '../../../../../src/ol/geom/Point.js';
|
||||
import VectorLayer from '../../../../../src/ol/layer/Vector.js';
|
||||
import VectorSource from '../../../../../src/ol/source/Vector.js';
|
||||
@@ -592,4 +593,81 @@ describe('ol.renderer.webgl.PointsLayer', function () {
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('fires events', () => {
|
||||
let layer, source, renderer, frameState;
|
||||
|
||||
beforeEach(function () {
|
||||
source = new VectorSource({
|
||||
features: new GeoJSON().readFeatures({
|
||||
'type': 'FeatureCollection',
|
||||
'features': [
|
||||
{
|
||||
'type': 'Feature',
|
||||
'properties': {},
|
||||
'geometry': {
|
||||
'type': 'Point',
|
||||
'coordinates': [13, 52],
|
||||
},
|
||||
},
|
||||
],
|
||||
}),
|
||||
});
|
||||
|
||||
layer = new VectorLayer({
|
||||
source,
|
||||
});
|
||||
|
||||
renderer = new WebGLPointsLayerRenderer(layer, {
|
||||
vertexShader: simpleVertexShader,
|
||||
fragmentShader: simpleFragmentShader,
|
||||
});
|
||||
|
||||
frameState = {
|
||||
viewHints: [],
|
||||
viewState: {
|
||||
projection: getProjection('EPSG:4326'),
|
||||
resolution: 0.010986328125,
|
||||
rotation: 0,
|
||||
center: [15, 52],
|
||||
zoom: 7,
|
||||
},
|
||||
extent: [
|
||||
11.1932373046875,
|
||||
46.429931640625,
|
||||
18.8067626953125,
|
||||
57.570068359375,
|
||||
],
|
||||
size: [693, 1014],
|
||||
layerIndex: 0,
|
||||
layerStatesArray: [
|
||||
{
|
||||
layer: layer,
|
||||
opacity: 1,
|
||||
visible: true,
|
||||
zIndex: 0,
|
||||
},
|
||||
],
|
||||
};
|
||||
});
|
||||
|
||||
it('fires prerender and postrender events', function (done) {
|
||||
let prerenderNotified = false;
|
||||
let postrenderNotified = false;
|
||||
|
||||
layer.once('prerender', (evt) => {
|
||||
prerenderNotified = true;
|
||||
});
|
||||
|
||||
layer.once('postrender', (evt) => {
|
||||
postrenderNotified = true;
|
||||
expect(prerenderNotified).to.be(true);
|
||||
expect(postrenderNotified).to.be(true);
|
||||
done();
|
||||
});
|
||||
|
||||
renderer.prepareFrame(frameState);
|
||||
renderer.renderFrame(frameState);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user