From 5d7f7dbf515dacc809a3bacafa5f20755e126afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Kr=C3=B6g?= Date: Thu, 15 Jul 2021 11:52:56 +0200 Subject: [PATCH] Add test for subcontrol added during map contruction --- test/browser/spec/ol/map.test.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/browser/spec/ol/map.test.js b/test/browser/spec/ol/map.test.js index 51deb0d674..d6c9001cbe 100644 --- a/test/browser/spec/ol/map.test.js +++ b/test/browser/spec/ol/map.test.js @@ -1,3 +1,4 @@ +import Control from '../../../../src/ol/control/Control.js'; import DoubleClickZoom from '../../../../src/ol/interaction/DoubleClickZoom.js'; import DragPan from '../../../../src/ol/interaction/DragPan.js'; import Feature from '../../../../src/ol/Feature.js'; @@ -66,6 +67,35 @@ describe('ol.Map', function () { const containerStop = map.getOverlayContainerStopEvent(); expect(containerStop.className).to.be('ol-overlaycontainer-stopevent'); }); + + it('calls setMap for controls added by other controls', function () { + let subSetMapCalled = false; + class SubControl extends Control { + setMap(map) { + super.setMap(map); + subSetMapCalled = true; + } + } + class MainControl extends Control { + setMap(map) { + super.setMap(map); + map.addControl( + new SubControl({ + element: document.createElement('div'), + }) + ); + } + } + new Map({ + target: document.createElement('div'), + controls: [ + new MainControl({ + element: document.createElement('div'), + }), + ], + }); + expect(subSetMapCalled).to.be(true); + }); }); describe('#addLayer()', function () {