From d2da88a3fd70328d999107b1379d6181ba83a504 Mon Sep 17 00:00:00 2001 From: mike-000 <49240900+mike-000@users.noreply.github.com> Date: Wed, 30 Mar 2022 11:57:10 +0100 Subject: [PATCH] test gutter --- test/browser/spec/ol/data/wms20.png | Bin 0 -> 9728 bytes test/browser/spec/ol/layer/Tile.test.js | 73 ++++++++++++++++++- test/browser/spec/ol/layer/WebGLTile.test.js | 72 ++++++++++++++++++ 3 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 test/browser/spec/ol/data/wms20.png diff --git a/test/browser/spec/ol/data/wms20.png b/test/browser/spec/ol/data/wms20.png new file mode 100644 index 0000000000000000000000000000000000000000..34a5a73d2f6f26f0043ca4b6c9e1a96a0193f46a GIT binary patch literal 9728 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 Tkz863@S`mMT(0!VtHA#QR9XAU literal 0 HcmV?d00001 diff --git a/test/browser/spec/ol/layer/Tile.test.js b/test/browser/spec/ol/layer/Tile.test.js index 756f0028fb..d75688504d 100644 --- a/test/browser/spec/ol/layer/Tile.test.js +++ b/test/browser/spec/ol/layer/Tile.test.js @@ -1,6 +1,6 @@ import TileLayer from '../../../../../src/ol/layer/Tile.js'; import {Map, View} from '../../../../../src/ol/index.js'; -import {OSM, XYZ} from '../../../../../src/ol/source.js'; +import {OSM, TileWMS, XYZ} from '../../../../../src/ol/source.js'; describe('ol/layer/Tile', function () { describe('constructor (defaults)', function () { @@ -78,6 +78,77 @@ describe('ol/layer/Tile', function () { }); }); + describe('gutter', () => { + let map, target, layer, data; + beforeEach((done) => { + target = document.createElement('div'); + target.style.width = '256px'; + target.style.height = '256px'; + document.body.appendChild(target); + + layer = new TileLayer({ + source: new TileWMS({ + params: { + LAYERS: 'layer', + }, + gutter: 20, + url: 'spec/ol/data/wms20.png', + }), + }); + + map = new Map({ + target: target, + pixelRatio: 1, + layers: [layer], + view: new View({ + center: [0, 0], + zoom: 0, + }), + }); + + map.once('rendercomplete', () => done()); + }); + + afterEach(() => { + map.setTarget(null); + document.body.removeChild(target); + }); + + it('gets pixel data', () => { + data = layer.getData([76, 114]); + expect(data).to.be.a(Uint8ClampedArray); + expect(data.length).to.be(4); + expect(data[0]).to.be(77); + expect(data[1]).to.be(255); + expect(data[2]).to.be(77); + expect(data[3]).to.be(179); + + data = layer.getData([76, 118]); + expect(data).to.be.a(Uint8ClampedArray); + expect(data.length).to.be(4); + expect(data[0]).to.be(255); + expect(data[1]).to.be(77); + expect(data[2]).to.be(77); + expect(data[3]).to.be(179); + + data = layer.getData([80, 114]); + expect(data).to.be.a(Uint8ClampedArray); + expect(data.length).to.be(4); + expect(data[0]).to.be(255); + expect(data[1]).to.be(77); + expect(data[2]).to.be(77); + expect(data[3]).to.be(179); + + data = layer.getData([80, 118]); + expect(data).to.be.a(Uint8ClampedArray); + expect(data.length).to.be(4); + expect(data[0]).to.be(77); + expect(data[1]).to.be(255); + expect(data[2]).to.be(77); + expect(data[3]).to.be(179); + }); + }); + describe('frameState.animate after tile transition with layer opacity', function () { let target, map; diff --git a/test/browser/spec/ol/layer/WebGLTile.test.js b/test/browser/spec/ol/layer/WebGLTile.test.js index 9290857a49..a8458f41ce 100644 --- a/test/browser/spec/ol/layer/WebGLTile.test.js +++ b/test/browser/spec/ol/layer/WebGLTile.test.js @@ -1,5 +1,6 @@ import DataTileSource from '../../../../../src/ol/source/DataTile.js'; import Map from '../../../../../src/ol/Map.js'; +import TileWMS from '../../../../../src/ol/source/TileWMS.js'; import View from '../../../../../src/ol/View.js'; import WebGLHelper from '../../../../../src/ol/webgl/Helper.js'; import WebGLTileLayer from '../../../../../src/ol/layer/WebGLTile.js'; @@ -128,6 +129,77 @@ describe('ol/layer/WebGLTile', function () { }); }); + describe('gutter', () => { + let map, target, layer, data; + beforeEach((done) => { + target = document.createElement('div'); + target.style.width = '256px'; + target.style.height = '256px'; + document.body.appendChild(target); + + layer = new WebGLTileLayer({ + source: new TileWMS({ + params: { + LAYERS: 'layer', + }, + gutter: 20, + url: 'spec/ol/data/wms20.png', + }), + }); + + map = new Map({ + target: target, + pixelRatio: 1, + layers: [layer], + view: new View({ + center: [0, 0], + zoom: 0, + }), + }); + + map.once('rendercomplete', () => done()); + }); + + afterEach(() => { + map.setTarget(null); + document.body.removeChild(target); + }); + + it('gets pixel data', () => { + data = layer.getData([76, 114]); + expect(data).to.be.a(Uint8ClampedArray); + expect(data.length).to.be(4); + expect(data[0]).to.be(77); + expect(data[1]).to.be(255); + expect(data[2]).to.be(77); + expect(data[3]).to.be(179); + + data = layer.getData([76, 118]); + expect(data).to.be.a(Uint8ClampedArray); + expect(data.length).to.be(4); + expect(data[0]).to.be(255); + expect(data[1]).to.be(77); + expect(data[2]).to.be(77); + expect(data[3]).to.be(179); + + data = layer.getData([80, 114]); + expect(data).to.be.a(Uint8ClampedArray); + expect(data.length).to.be(4); + expect(data[0]).to.be(255); + expect(data[1]).to.be(77); + expect(data[2]).to.be(77); + expect(data[3]).to.be(179); + + data = layer.getData([80, 118]); + expect(data).to.be.a(Uint8ClampedArray); + expect(data.length).to.be(4); + expect(data[0]).to.be(77); + expect(data[1]).to.be(255); + expect(data[2]).to.be(77); + expect(data[3]).to.be(179); + }); + }); + describe('dispose()', () => { it('calls dispose on the renderer', () => { const renderer = layer.getRenderer();