From dc0be1228c9741d0cacbd6e9bc8eae4efeba5fea Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 14 Apr 2015 09:54:32 +0200 Subject: [PATCH] Add more ol.layer.Group tests --- test/spec/ol/layer/layergroup.test.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/spec/ol/layer/layergroup.test.js b/test/spec/ol/layer/layergroup.test.js index 23206931ef..38fcdccec2 100644 --- a/test/spec/ol/layer/layergroup.test.js +++ b/test/spec/ol/layer/layergroup.test.js @@ -326,6 +326,31 @@ describe('ol.layer.Group', function() { }); + describe('layers events', function() { + + it('listen / unlisten for layers added to the collection', function() { + var layers = new ol.Collection(); + var layerGroup = new ol.layer.Group({ + layers: layers + }); + expect(goog.object.getCount(layerGroup.listenerKeys_)).to.eql(0); + var layer = new ol.layer.Layer({}); + layers.push(layer); + expect(goog.object.getCount(layerGroup.listenerKeys_)).to.eql(1); + + var listeners = layerGroup.listenerKeys_[goog.getUid(layer)]; + expect(listeners.length).to.eql(2); + expect(listeners[0]).to.be.a(goog.events.Listener); + expect(listeners[1]).to.be.a(goog.events.Listener); + + // remove the layer from the group + layers.pop(); + expect(goog.object.getCount(layerGroup.listenerKeys_)).to.eql(0); + expect(listeners[0].removed).to.eql(true); + expect(listeners[1].removed).to.eql(true); + }); + + }); describe('#setLayers', function() { @@ -485,6 +510,7 @@ describe('ol.layer.Group', function() { goog.require('goog.dispose'); goog.require('goog.events.EventType'); +goog.require('goog.events.Listener'); goog.require('goog.object'); goog.require('ol.ObjectEventType'); goog.require('ol.extent');