more tests for SelectControl.unselectAll

This commit is contained in:
Éric Lemoine
2012-05-30 09:01:15 +02:00
parent 976554fc82
commit e3d1d3ea62

View File

@@ -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');
}
</script>