From e3d1d3ea625e380c895090766c6745610b94e4df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 30 May 2012 09:01:15 +0200 Subject: [PATCH] more tests for SelectControl.unselectAll --- tests/Control/SelectFeature.html | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/tests/Control/SelectFeature.html b/tests/Control/SelectFeature.html index fbf47989f4..150ab07c5c 100644 --- a/tests/Control/SelectFeature.html +++ b/tests/Control/SelectFeature.html @@ -560,31 +560,43 @@ } function test_unselectAll(t) { - t.plan(1); + t.plan(2); var layer = new OpenLayers.Layer.Vector(); var control = new OpenLayers.Control.SelectFeature(layer); var feature1 = new OpenLayers.Feature.Vector(); + feature1.id = 1; var feature2 = new OpenLayers.Feature.Vector(); + feature2.id = 2; var feature3 = new OpenLayers.Feature.Vector(); + feature3.id = 3; + var feature4 = new OpenLayers.Feature.Vector(); + feature4.id = 4; - layer.addFeatures([feature1, feature2, feature3]); + layer.addFeatures([feature1, feature2, feature3, feature4]); control.select(feature1); control.select(feature2); control.select(feature3); + control.select(feature4); layer.events.on({ featureunselected: function(e) { - layer.removeFeatures([feature2]); + // we change the selectedFeatures array while + // unselectAll is iterating over that array. + if(feature2.layer) { + layer.removeFeatures([feature2]); + } } }); - control.unselectAll(); - t.eq(layer.selectedFeatures.length, 0, - 'unselectAll unselects all features'); + control.unselectAll({except: feature3}); + t.eq(layer.selectedFeatures.length, 1, + 'unselectAll unselected all but one'); + t.eq(layer.selectedFeatures[0].id, 3, + 'the remaining selected features is the one expected'); }