Clear null geometry features in ol.source.Vector#clear

This commit is contained in:
Tom Payne
2013-12-19 13:36:21 +01:00
parent f1fac356dd
commit b2c822c9ca
2 changed files with 7 additions and 2 deletions

View File

@@ -130,6 +130,10 @@ ol.source.Vector.prototype.addFeaturesInternal = function(features) {
ol.source.Vector.prototype.clear = function() {
this.rBush_.forEach(this.removeFeatureInternal, this);
this.rBush_.clear();
goog.object.forEach(
this.nullGeometryFeatures_, this.removeFeatureInternal, this);
goog.object.clear(this.nullGeometryFeatures_);
goog.asserts.assert(goog.object.isEmpty(this.featureChangeKeys_));
this.dispatchChangeEvent();
};

View File

@@ -66,7 +66,7 @@ describe('ol.source.Vector', function() {
});
describe('when populated with 10 random points', function() {
describe('when populated with 10 random points and a null', function() {
var features;
var vectorSource;
@@ -77,6 +77,7 @@ describe('ol.source.Vector', function() {
features[i] =
new ol.Feature(new ol.geom.Point([Math.random(), Math.random()]));
}
features.push(new ol.Feature(null));
vectorSource = new ol.source.Vector({
features: features
});
@@ -95,7 +96,7 @@ describe('ol.source.Vector', function() {
expect(changeSpy).to.be.called();
expect(changeSpy.callCount).to.be(1);
expect(removeFeatureSpy).to.be.called();
expect(removeFeatureSpy.callCount).to.be(10);
expect(removeFeatureSpy.callCount).to.be(features.length);
});
});