From 7f8c5d0c13f0a35392ef75cdf21c33f553ea8dcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 22 May 2008 13:42:23 +0000 Subject: [PATCH] geometry-less vector features aren't cloneable, r=pspencer (closes #1557) git-svn-id: http://svn.openlayers.org/trunk/openlayers@7252 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Feature/Vector.js | 9 +++++---- tests/Feature/Vector.html | 7 ++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/OpenLayers/Feature/Vector.js b/lib/OpenLayers/Feature/Vector.js index 998d312e0e..e969f82123 100644 --- a/lib/OpenLayers/Feature/Vector.js +++ b/lib/OpenLayers/Feature/Vector.js @@ -80,7 +80,7 @@ OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, { OpenLayers.Feature.prototype.initialize.apply(this, [null, null, attributes]); this.lonlat = null; - this.geometry = geometry; + this.geometry = geometry ? geometry : null; this.state = null; this.attributes = {}; if (attributes) { @@ -113,9 +113,10 @@ OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, { * {} An exact clone of this vector feature. */ clone: function () { - return new OpenLayers.Feature.Vector(this.geometry.clone(), - this.attributes, - this.style); + return new OpenLayers.Feature.Vector( + this.geometry ? this.geometry.clone() : null, + this.attributes, + this.style); }, /** diff --git a/tests/Feature/Vector.html b/tests/Feature/Vector.html index 1e7aadb9c1..8cdb92e6ee 100644 --- a/tests/Feature/Vector.html +++ b/tests/Feature/Vector.html @@ -59,7 +59,7 @@ } function test_Feature_Vector_clone(t) { - t.plan(5); + t.plan(6); var geometry = new OpenLayers.Geometry.Point(Math.random(), Math.random()); @@ -79,6 +79,11 @@ "geometry.x property set properly"); t.eq(clone.geometry.y, geometry.y, "geometry.y property set properly"); + + feature = new OpenLayers.Feature.Vector(); + clone = feature.clone(); + t.ok(clone instanceof OpenLayers.Feature.Vector, + "clone can clone geometry-less features"); }