more tests for SelectControl.unselectAll

This commit is contained in:
Éric Lemoine
2012-05-30 09:01:15 +02:00
parent 976554fc82
commit e3d1d3ea62
+18 -6
View File
@@ -560,31 +560,43 @@
} }
function test_unselectAll(t) { function test_unselectAll(t) {
t.plan(1); t.plan(2);
var layer = new OpenLayers.Layer.Vector(); var layer = new OpenLayers.Layer.Vector();
var control = new OpenLayers.Control.SelectFeature(layer); var control = new OpenLayers.Control.SelectFeature(layer);
var feature1 = new OpenLayers.Feature.Vector(); var feature1 = new OpenLayers.Feature.Vector();
feature1.id = 1;
var feature2 = new OpenLayers.Feature.Vector(); var feature2 = new OpenLayers.Feature.Vector();
feature2.id = 2;
var feature3 = new OpenLayers.Feature.Vector(); 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(feature1);
control.select(feature2); control.select(feature2);
control.select(feature3); control.select(feature3);
control.select(feature4);
layer.events.on({ layer.events.on({
featureunselected: function(e) { 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(); control.unselectAll({except: feature3});
t.eq(layer.selectedFeatures.length, 0, t.eq(layer.selectedFeatures.length, 1,
'unselectAll unselects all features'); 'unselectAll unselected all but one');
t.eq(layer.selectedFeatures[0].id, 3,
'the remaining selected features is the one expected');
} }
</script> </script>