From 7aed43185b77b7945fe65b5879039232101283ad Mon Sep 17 00:00:00 2001 From: mosesonline Date: Tue, 18 Dec 2012 09:43:22 +0100 Subject: [PATCH] [BugFix] Added tests for handle destroyed layer in SelectFeature. --- tests/Control/SelectFeature.html | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/Control/SelectFeature.html b/tests/Control/SelectFeature.html index 150ab07c5c..b0d7d885a1 100644 --- a/tests/Control/SelectFeature.html +++ b/tests/Control/SelectFeature.html @@ -545,6 +545,31 @@ t.eq((control.layers === null), true, "When using setLayer with a single layer, the layers property is removed if present before"); map.destroy(); } + + function test_setLayerWithRemoved(t) { + t.plan(2); + var map = new OpenLayers.Map("map"); + var layer1 = new OpenLayers.Layer.Vector(); + var layer2 = new OpenLayers.Layer.Vector(); + map.addLayer(layer1, layer2); + // initialize it with a single layer + var control = new OpenLayers.Control.SelectFeature(layer1); + map.addControl(control); + control.activate(); + var noError = true; + map.events.register("preremovelayer", this, function(e) { + try { + control.setLayer(layer2); + } catch (e) { + noError = false; + } + }); + layer1.destroy(); + t.eq(layer2.id, control.layer.id, "Layer is set correctly without error"); + t.eq(noError, true,"No error occured during setLayer"); + control.destroy(); + map.destroy(); + } function test_destroy(t) { t.plan(1);