From 531115b67ba583a82949a3672788d811f53355af Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Wed, 6 Sep 2017 18:25:31 +0200 Subject: [PATCH] Add regression test --- test/spec/ol/data/dot.png | Bin 0 -> 478 bytes .../ol/renderer/canvas/imagelayer.test.js | 65 ++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 test/spec/ol/data/dot.png create mode 100644 test/spec/ol/renderer/canvas/imagelayer.test.js diff --git a/test/spec/ol/data/dot.png b/test/spec/ol/data/dot.png new file mode 100644 index 0000000000000000000000000000000000000000..d5337830174e23fbc5bf61084fb75aebff7a7caa GIT binary patch literal 478 zcmV<40U`d0P)ZB7*1QC%0 z8-QQwdl9$>9)OK8MpyH;}|bBj$>?^ zCR%G_S(XAkrPx)})iRefj$^FrI%oL+aGO#!N-0%U6~-7oDq~C@ zn#%UdK&6y=v&==;|BX`__^Gy%9U&w#Ty0VD&xh=_9z@BN2i-g}&Ld3!t{**4#R zm53On6sy&WqA1?Ytm`^hLznZ-Fp04X?+ZN~C971>o+HC4iKMr4hzP{wZ{?{+yHxTAM U=CW(blmGw#07*qoM6N<$f=cV!Qvd(} literal 0 HcmV?d00001 diff --git a/test/spec/ol/renderer/canvas/imagelayer.test.js b/test/spec/ol/renderer/canvas/imagelayer.test.js new file mode 100644 index 0000000000..943fe7f609 --- /dev/null +++ b/test/spec/ol/renderer/canvas/imagelayer.test.js @@ -0,0 +1,65 @@ +goog.require('ol.Map'); +goog.require('ol.View'); +goog.require('ol.layer.Image'); +goog.require('ol.proj.Projection'); +goog.require('ol.source.ImageStatic'); + + +describe('ol.renderer.canvas.ImageLayer', function() { + + describe('#forEachLayerAtCoordinate', function() { + + var map, target, source; + beforeEach(function(done) { + var projection = new ol.proj.Projection({ + code: 'custom-image', + units: 'pixels', + extent: [0, 0, 200, 200] + }); + target = document.createElement('div'); + target.style.width = '100px'; + target.style.height = '100px'; + document.body.appendChild(target); + source = new ol.source.ImageStatic({ + url: 'spec/ol/data/dot.png', + projection: projection, + imageExtent: [0, 0, 20, 20] + }); + map = new ol.Map({ + pixelRatio: 1, + target: target, + layers: [new ol.layer.Image({ + source: source + })], + view: new ol.View({ + projection: projection, + center: [10, 10], + zoom: 2, + maxZoom: 8 + }) + }); + source.on('imageloadend', function() { + done(); + }); + }); + + afterEach(function() { + map.setTarget(null); + document.body.removeChild(target); + }); + + it('properly detects pixels', function() { + map.renderSync(); + var has = false; + function hasLayer() { + has = true; + } + map.forEachLayerAtPixel([20, 80], hasLayer); + expect(has).to.be(true); + has = false; + map.forEachLayerAtPixel([10, 90], hasLayer); + expect(has).to.be(false); + }); + }); + +});