From 2d3d6cae3158aafabf6130b940e22b9ede156902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Kr=C3=B6g?= Date: Mon, 27 Sep 2021 22:52:09 +0200 Subject: [PATCH] Test VectorImage rendering view extent with no features --- .../ol/renderer/canvas/vectorimage.test.js | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/test/browser/spec/ol/renderer/canvas/vectorimage.test.js b/test/browser/spec/ol/renderer/canvas/vectorimage.test.js index 23d58df237..9b8983d4b9 100644 --- a/test/browser/spec/ol/renderer/canvas/vectorimage.test.js +++ b/test/browser/spec/ol/renderer/canvas/vectorimage.test.js @@ -1,4 +1,7 @@ import CanvasVectorImageLayerRenderer from '../../../../../../src/ol/renderer/canvas/VectorImageLayer.js'; +import Feature from '../../../../../../src/ol/Feature.js'; +import ImageCanvas from '../../../../../../src/ol/ImageCanvas.js'; +import Point from '../../../../../../src/ol/geom/Point.js'; import VectorImageLayer from '../../../../../../src/ol/layer/VectorImage.js'; import VectorSource from '../../../../../../src/ol/source/Vector.js'; import {create} from '../../../../../../src/ol/transform.js'; @@ -19,12 +22,19 @@ describe('ol/renderer/canvas/VectorImageLayer', function () { }); describe('#prepareFrame', function () { - it('sets correct extent with imageRatio = 2', function () { - const layer = new VectorImageLayer({ + /** @type {VectorImageLayer} */ + let layer; + /** @type {CanvasVectorImageLayerRenderer} */ + let renderer; + let frameState; + this.beforeEach(function () { + layer = new VectorImageLayer({ imageRatio: 2, - source: new VectorSource(), + source: new VectorSource({ + features: [new Feature(new Point([0, 0]))], + }), }); - const renderer = new CanvasVectorImageLayerRenderer(layer); + renderer = new CanvasVectorImageLayerRenderer(layer); const projection = getProjection('EPSG:3857'); const projExtent = projection.getExtent(); const extent = [ @@ -33,7 +43,7 @@ describe('ol/renderer/canvas/VectorImageLayer', function () { projExtent[0] + 10000, 10000, ]; - const frameState = { + frameState = { layerStatesArray: [layer.getLayerState()], layerIndex: 0, extent: extent, @@ -46,12 +56,22 @@ describe('ol/renderer/canvas/VectorImageLayer', function () { rotation: 0, }, }; + }); + it('sets image to null if no features are rendered', function () { renderer.prepareFrame(frameState); - const expected = renderer.image_.getExtent(); + expect(renderer.image_).to.be.a(ImageCanvas); + layer.getSource().clear(); + renderer.prepareFrame(frameState); + expect(renderer.image_).to.be(null); + }); + it('sets correct extent with imageRatio = 2', function () { + const extent = frameState.extent.slice(); scaleFromCenter(extent, 2); - expect(expected).to.eql(extent); + renderer.prepareFrame(frameState); + const imageExtent = renderer.image_.getExtent(); + expect(imageExtent).to.eql(extent); }); }); });