From 289d9d371d729d8fc48ed3a2701ef6aad14d0dbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 22 Dec 2011 14:18:12 +0100 Subject: [PATCH 01/10] make Layer.redraw not unconditionally set zoomChanged to true in moveTo --- lib/OpenLayers/Layer.js | 11 +++++-- tests/Layer.html | 68 +++++++++++++++++++++++++++++++++++++++-- tests/Tile/Image.html | 32 +++++++++++++++++++ 3 files changed, 106 insertions(+), 5 deletions(-) diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js index 4c39b766c0..2fd470a14e 100644 --- a/lib/OpenLayers/Layer.js +++ b/lib/OpenLayers/Layer.js @@ -541,7 +541,9 @@ OpenLayers.Layer = OpenLayers.Class({ * Returns: * {Boolean} The layer was redrawn. */ - redraw: function() { + redraw: function(zoomChanged) { + // zoomChanged forces a zoom change in the layer's moveTo + // call. This isn't documented because not part of the API. var redrawn = false; if (this.map) { @@ -552,7 +554,9 @@ OpenLayers.Layer = OpenLayers.Class({ var extent = this.getExtent(); if (extent && this.inRange && this.visibility) { - var zoomChanged = true; + zoomChanged = zoomChanged || + this._resolution === undefined || + this._resolution !== this.map.getResolution(); this.moveTo(extent, zoomChanged, false); this.events.triggerEvent("moveend", {"zoomChanged": zoomChanged}); @@ -577,6 +581,7 @@ OpenLayers.Layer = OpenLayers.Class({ display = display && this.inRange; } this.display(display); + this._resolution = this.map.getResolution(); }, /** @@ -632,6 +637,8 @@ OpenLayers.Layer = OpenLayers.Class({ // deal with gutters this.setTileSize(); + + delete this._resolution; } }, diff --git a/tests/Layer.html b/tests/Layer.html index eabd233aee..01f5218cab 100644 --- a/tests/Layer.html +++ b/tests/Layer.html @@ -672,19 +672,81 @@ // test that the moveend event was triggered t.ok(log.event, "an event was logged"); t.eq(log.event.type, "moveend", "moveend was triggered"); - t.eq(log.event.zoomChanged, true, "event says zoomChanged true - poor name"); + t.eq(log.event.zoomChanged, false, "event says zoomChanged false"); layer.moveTo = function(bounds, zoomChanged, dragging) { var extent = layer.map.getExtent(); t.ok(bounds.equals(extent), "redraw calls moveTo with the map extent"); - t.ok(zoomChanged, - "redraw calls moveTo with zoomChanged true"); + t.ok(!zoomChanged, + "redraw calls moveTo with zoomChanged false"); t.ok(!dragging, "redraw calls moveTo with dragging false"); } layer.redraw(); } + + // This function includes integration tests to verify that the + // layer's moveTo function is called with the expected value + // for zoomChanged + function test_moveTo_zoomChanged(t) { + t.plan(6); + + var log = {}; + var map = new OpenLayers.Map('map'); + + var l1 = new OpenLayers.Layer('l1', {isBaseLayer: true}); + l1.moveTo = function(bounds, zoomChanged, dragging) { + log.moveTo = {zoomChanged: zoomChanged}; + OpenLayers.Layer.prototype.moveTo.apply(this, arguments); + }; + + map.addLayer(l1); + map.zoomToMaxExtent(); + + log = {}; + l1.redraw(); + t.eq(log.moveTo.zoomChanged, false, + "[a] redraw calls moveTo with zoomChanged false"); + + log = {}; + l1.redraw(true); + t.eq(log.moveTo.zoomChanged, true, + "[b] redraw calls moveTo with zoomChanged true"); + + l1.setVisibility(false); + log = {}; + l1.setVisibility(true); + t.eq(log.moveTo.zoomChanged, false, + "[c] redraw calls moveTo with zoomChanged false"); + + l1.setVisibility(false); + map.zoomIn(); + log = {}; + l1.setVisibility(true); + t.eq(log.moveTo.zoomChanged, true, + "[d] redraw calls moveTo with zoomChanged true"); + + l1.moveTo = OpenLayers.Layer.prototype.moveTo; + + var l2 = new OpenLayers.Layer('l2'); + l2.moveTo = function(bounds, zoomChanged, dragging) { + log.moveTo = {zoomChanged: zoomChanged}; + OpenLayers.Layer.prototype.moveTo.apply(this, arguments); + }; + log = {}; + map.addLayer(l2); + t.eq(log.moveTo.zoomChanged, true, + "[e] redraw calls moveTo with zoomChanged true"); + + map.removeLayer(l2); + log = {}; + map.addLayer(l2); + t.eq(log.moveTo.zoomChanged, true, + "[f] redraw calls moveTo with zoomChanged true"); + + map.destroy(); + } function test_layer_setIsBaseLayer(t) { t.plan(2); diff --git a/tests/Tile/Image.html b/tests/Tile/Image.html index 0f71c542dd..f350b5c059 100644 --- a/tests/Tile/Image.html +++ b/tests/Tile/Image.html @@ -342,6 +342,38 @@ t.ok(tile.imgDiv == null, "image reference removed from tile"); map.destroy(); } + + // test for https://github.com/openlayers/openlayers/pull/36 + // (more an integration test than a unit test) + function test_olImageLoadError(t) { + t.plan(2); + + var map = new OpenLayers.Map('map'); + var layer = new OpenLayers.Layer.WMS("invalid", "", {layers: 'basic'}); + map.addLayer(layer); + + var size = new OpenLayers.Size(5, 6); + var position = new OpenLayers.Pixel(20, 30); + var bounds = new OpenLayers.Bounds(1, 2, 3, 4); + + var tile = new OpenLayers.Tile.Image(layer, position, bounds, null, size); + tile.draw(); + + t.delay_call(0.1, function() { + + // check initial state + t.ok(OpenLayers.Element.hasClass(tile.imgDiv, 'olImageLoadError'), + 'tile image has the olImageLoadError class (init state)'); + + layer.setVisibility(false); + layer.setVisibility(true); + + t.ok(OpenLayers.Element.hasClass(tile.imgDiv, 'olImageLoadError'), + 'tile image still has the olImageLoadError class'); + + map.destroy(); + }); + } From ff045172320eb74808d7c3b3c6e1d80dfaa9c761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 22 Dec 2011 14:21:07 +0100 Subject: [PATCH 02/10] HTTPRequest.mergeNewParams should now do redraw(true) --- lib/OpenLayers/Layer/HTTPRequest.js | 4 ++-- tests/Layer/ArcGIS93Rest.html | 5 ++++- tests/Layer/HTTPRequest.html | 11 ++++++----- tests/Layer/KaMap.html | 6 +++++- tests/Layer/MapGuide.html | 5 ++++- tests/Layer/MapServer.html | 5 ++++- tests/Layer/WMS.html | 5 ++++- 7 files changed, 29 insertions(+), 12 deletions(-) diff --git a/lib/OpenLayers/Layer/HTTPRequest.js b/lib/OpenLayers/Layer/HTTPRequest.js index ddf3d51073..3841c9f73d 100644 --- a/lib/OpenLayers/Layer/HTTPRequest.js +++ b/lib/OpenLayers/Layer/HTTPRequest.js @@ -120,7 +120,7 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, { */ mergeNewParams:function(newParams) { this.params = OpenLayers.Util.extend(this.params, newParams); - var ret = this.redraw(); + var ret = OpenLayers.Layer.prototype.redraw.call(this, true); if(this.map != null) { this.map.events.triggerEvent("changelayer", { layer: this, @@ -144,7 +144,7 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, { if (force) { return this.mergeNewParams({"_olSalt": Math.random()}); } else { - return OpenLayers.Layer.prototype.redraw.apply(this, []); + return OpenLayers.Layer.prototype.redraw.call(this); } }, diff --git a/tests/Layer/ArcGIS93Rest.html b/tests/Layer/ArcGIS93Rest.html index 4f1a4c618d..7c815b773e 100644 --- a/tests/Layer/ArcGIS93Rest.html +++ b/tests/Layer/ArcGIS93Rest.html @@ -155,7 +155,8 @@ map.addLayer(layer); map.zoomToMaxExtent(); - layer.redraw = function() { + var redraw = OpenLayers.Layer.prototype.redraw; + OpenLayers.Layer.prototype.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } @@ -167,6 +168,8 @@ newParams.CHICKPEAS = 151; t.eq( layer.params.CHICKPEAS, "png", "mergeNewParams() makes clean copy of hashtable"); + + OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } diff --git a/tests/Layer/HTTPRequest.html b/tests/Layer/HTTPRequest.html index 02311564f1..e753586dd0 100644 --- a/tests/Layer/HTTPRequest.html +++ b/tests/Layer/HTTPRequest.html @@ -92,13 +92,14 @@ t.eq( log[0].scope, scope, "mergeNewParams() executes changelayer listener with expected scope"); newParams.chickpeas = 151; - t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hash"); - - layer.redraw = function() { - t.ok(true, "layer.mergeNewParams calls layer.redraw"); - } + + var redraw = OpenLayers.Layer.prototype.redraw; + OpenLayers.Layer.prototype.redraw = function(forceZoomChanged) { + t.eq(forceZoomChanged, true, 'mergeNewParams() sends true to Layer.redraw'); + }; layer.mergeNewParams(); + OpenLayers.Layer.prototype.redraw = redraw; } function test_Layer_HTTPRequest_getFullRequestString (t) { diff --git a/tests/Layer/KaMap.html b/tests/Layer/KaMap.html index b22917fda0..b2c22cf650 100644 --- a/tests/Layer/KaMap.html +++ b/tests/Layer/KaMap.html @@ -153,7 +153,9 @@ map.addLayer(layer); map.zoomToMaxExtent(); - layer.redraw = function() { + + var redraw = OpenLayers.Layer.prototype.redraw; + OpenLayers.Layer.prototype.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } @@ -165,6 +167,8 @@ newParams.chickpeas = 151; t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hashtable"); + + OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } diff --git a/tests/Layer/MapGuide.html b/tests/Layer/MapGuide.html index b1eb386c27..f71218071c 100644 --- a/tests/Layer/MapGuide.html +++ b/tests/Layer/MapGuide.html @@ -132,7 +132,8 @@ map.addLayer(layer); map.zoomToMaxExtent(); - layer.redraw = function() { + var redraw = OpenLayers.Layer.prototype.redraw; + OpenLayers.Layer.prototype.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } @@ -144,6 +145,8 @@ newParams.chickpeas = 151; t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hashtable"); + + OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } diff --git a/tests/Layer/MapServer.html b/tests/Layer/MapServer.html index 16e59156e3..ff8cdf4e53 100644 --- a/tests/Layer/MapServer.html +++ b/tests/Layer/MapServer.html @@ -136,7 +136,8 @@ map.addLayer(layer); map.zoomToMaxExtent(); - layer.redraw = function() { + var redraw = OpenLayers.Layer.prototype.redraw; + OpenLayers.Layer.prototype.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } layer.mergeNewParams(newParams); @@ -147,6 +148,8 @@ newParams.chickpeas = 151; t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hashtable"); + + OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } diff --git a/tests/Layer/WMS.html b/tests/Layer/WMS.html index a07b36c1d9..bb04560c88 100644 --- a/tests/Layer/WMS.html +++ b/tests/Layer/WMS.html @@ -195,7 +195,8 @@ map.addLayer(layer); map.zoomToMaxExtent(); - layer.redraw = function() { + var redraw = OpenLayers.Layer.prototype.redraw; + OpenLayers.Layer.prototype.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } @@ -207,6 +208,8 @@ newParams.CHICKPEAS = 151; t.eq( layer.params.CHICKPEAS, "image/png", "mergeNewParams() makes clean copy of hashtable"); + + OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } From d42eec97756d88f92147a46319484c55e8623a1a Mon Sep 17 00:00:00 2001 From: ahocevar Date: Mon, 26 Dec 2011 11:09:07 +0100 Subject: [PATCH 03/10] No new argument for Layer::redraw. Instead, make _resolution a private property (resolution) which is set to null to make redraw call moveTo with zoomChanged set to true. --- lib/OpenLayers/Layer.js | 21 +++++++++++++-------- lib/OpenLayers/Layer/HTTPRequest.js | 8 ++++---- tests/Layer.html | 3 ++- tests/Layer/HTTPRequest.html | 4 ++-- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js index 2fd470a14e..dd6ebd790a 100644 --- a/lib/OpenLayers/Layer.js +++ b/lib/OpenLayers/Layer.js @@ -265,6 +265,14 @@ OpenLayers.Layer = OpenLayers.Class({ * {Float} */ minResolution: null, + + /** + * Property: resolution + * {Float} Current resolution that the layer is drawn in. Used by + * subclasses to determine whether the zoom has changed when calling + * . + */ + resolution: null, /** * APIProperty: numZoomLevels @@ -541,9 +549,7 @@ OpenLayers.Layer = OpenLayers.Class({ * Returns: * {Boolean} The layer was redrawn. */ - redraw: function(zoomChanged) { - // zoomChanged forces a zoom change in the layer's moveTo - // call. This isn't documented because not part of the API. + redraw: function() { var redrawn = false; if (this.map) { @@ -554,9 +560,8 @@ OpenLayers.Layer = OpenLayers.Class({ var extent = this.getExtent(); if (extent && this.inRange && this.visibility) { - zoomChanged = zoomChanged || - this._resolution === undefined || - this._resolution !== this.map.getResolution(); + zoomChanged = this.resolution == null || + this.resolution !== this.map.getResolution(); this.moveTo(extent, zoomChanged, false); this.events.triggerEvent("moveend", {"zoomChanged": zoomChanged}); @@ -581,7 +586,7 @@ OpenLayers.Layer = OpenLayers.Class({ display = display && this.inRange; } this.display(display); - this._resolution = this.map.getResolution(); + this.resolution = this.map.getResolution(); }, /** @@ -638,7 +643,7 @@ OpenLayers.Layer = OpenLayers.Class({ // deal with gutters this.setTileSize(); - delete this._resolution; + this.resolution = null; } }, diff --git a/lib/OpenLayers/Layer/HTTPRequest.js b/lib/OpenLayers/Layer/HTTPRequest.js index 3841c9f73d..8f939f7b40 100644 --- a/lib/OpenLayers/Layer/HTTPRequest.js +++ b/lib/OpenLayers/Layer/HTTPRequest.js @@ -120,7 +120,8 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, { */ mergeNewParams:function(newParams) { this.params = OpenLayers.Util.extend(this.params, newParams); - var ret = OpenLayers.Layer.prototype.redraw.call(this, true); + this.resolution = null; + var ret = this.redraw(); if(this.map != null) { this.map.events.triggerEvent("changelayer", { layer: this, @@ -142,10 +143,9 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, { */ redraw: function(force) { if (force) { - return this.mergeNewParams({"_olSalt": Math.random()}); - } else { - return OpenLayers.Layer.prototype.redraw.call(this); + this.params["_olSalt"] = Math.random(); } + return OpenLayers.Layer.prototype.redraw.call(this); }, /** diff --git a/tests/Layer.html b/tests/Layer.html index 01f5218cab..d3b5072f4c 100644 --- a/tests/Layer.html +++ b/tests/Layer.html @@ -710,7 +710,8 @@ "[a] redraw calls moveTo with zoomChanged false"); log = {}; - l1.redraw(true); + l1.resolution = null; + l1.redraw(); t.eq(log.moveTo.zoomChanged, true, "[b] redraw calls moveTo with zoomChanged true"); diff --git a/tests/Layer/HTTPRequest.html b/tests/Layer/HTTPRequest.html index e753586dd0..2025677fe4 100644 --- a/tests/Layer/HTTPRequest.html +++ b/tests/Layer/HTTPRequest.html @@ -95,8 +95,8 @@ t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hash"); var redraw = OpenLayers.Layer.prototype.redraw; - OpenLayers.Layer.prototype.redraw = function(forceZoomChanged) { - t.eq(forceZoomChanged, true, 'mergeNewParams() sends true to Layer.redraw'); + OpenLayers.Layer.prototype.redraw = function() { + t.eq(this.resolution, null, 'mergeNewParams sets layer resolution to null, causing redraw to call moveTo with zoomChanged set to true'); }; layer.mergeNewParams(); OpenLayers.Layer.prototype.redraw = redraw; From 22e9fc92b8427a843ea0196107fd10a8c5383af2 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Mon, 26 Dec 2011 19:53:23 +0100 Subject: [PATCH 04/10] Don't change existing behavior for redraw(true) --- lib/OpenLayers/Layer/HTTPRequest.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/OpenLayers/Layer/HTTPRequest.js b/lib/OpenLayers/Layer/HTTPRequest.js index 8f939f7b40..0ae44bcbc1 100644 --- a/lib/OpenLayers/Layer/HTTPRequest.js +++ b/lib/OpenLayers/Layer/HTTPRequest.js @@ -143,9 +143,10 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, { */ redraw: function(force) { if (force) { - this.params["_olSalt"] = Math.random(); + this.mergeNewParams({"_olSalt": Math.random()}); + } else { + return OpenLayers.Layer.prototype.redraw.call(this); } - return OpenLayers.Layer.prototype.redraw.call(this); }, /** From 0ef4c8dd5b15f9e8e32fc511567c170749229d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 4 Jan 2012 08:47:28 +0100 Subject: [PATCH 05/10] make redraw return the return value of mergeNewParams --- lib/OpenLayers/Layer/HTTPRequest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OpenLayers/Layer/HTTPRequest.js b/lib/OpenLayers/Layer/HTTPRequest.js index 0ae44bcbc1..0e1b3afb8b 100644 --- a/lib/OpenLayers/Layer/HTTPRequest.js +++ b/lib/OpenLayers/Layer/HTTPRequest.js @@ -143,7 +143,7 @@ OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, { */ redraw: function(force) { if (force) { - this.mergeNewParams({"_olSalt": Math.random()}); + return this.mergeNewParams({"_olSalt": Math.random()}); } else { return OpenLayers.Layer.prototype.redraw.call(this); } From d64bbe1cfc02780b13bf775ad4ffb2ebca36d13f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 4 Jan 2012 08:47:55 +0100 Subject: [PATCH 06/10] better doc strings for Layer.resolution --- lib/OpenLayers/Layer.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js index dd6ebd790a..595c51f3f5 100644 --- a/lib/OpenLayers/Layer.js +++ b/lib/OpenLayers/Layer.js @@ -268,9 +268,11 @@ OpenLayers.Layer = OpenLayers.Class({ /** * Property: resolution - * {Float} Current resolution that the layer is drawn in. Used by - * subclasses to determine whether the zoom has changed when calling - * . + * {Float} Current resolution that the layer is drawn in. This is + * used to determine whether the zoom has changed when calling + * from . Subclasses may set this.resolution to + * null prior to calling redraw to force passing zoomChanged + * true to moveTo. */ resolution: null, From 0d702609b125cf9ad979d13a1f0ce2718d75e7aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 4 Jan 2012 08:59:47 +0100 Subject: [PATCH 07/10] revert changes to layer mergeNewParams tests (ff045172) --- tests/Layer/ArcGIS93Rest.html | 5 +---- tests/Layer/HTTPRequest.html | 11 +++++------ tests/Layer/KaMap.html | 6 +----- tests/Layer/MapGuide.html | 5 +---- tests/Layer/MapServer.html | 5 +---- tests/Layer/WMS.html | 5 +---- 6 files changed, 10 insertions(+), 27 deletions(-) diff --git a/tests/Layer/ArcGIS93Rest.html b/tests/Layer/ArcGIS93Rest.html index 7c815b773e..4f1a4c618d 100644 --- a/tests/Layer/ArcGIS93Rest.html +++ b/tests/Layer/ArcGIS93Rest.html @@ -155,8 +155,7 @@ map.addLayer(layer); map.zoomToMaxExtent(); - var redraw = OpenLayers.Layer.prototype.redraw; - OpenLayers.Layer.prototype.redraw = function() { + layer.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } @@ -168,8 +167,6 @@ newParams.CHICKPEAS = 151; t.eq( layer.params.CHICKPEAS, "png", "mergeNewParams() makes clean copy of hashtable"); - - OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } diff --git a/tests/Layer/HTTPRequest.html b/tests/Layer/HTTPRequest.html index 2025677fe4..02311564f1 100644 --- a/tests/Layer/HTTPRequest.html +++ b/tests/Layer/HTTPRequest.html @@ -92,14 +92,13 @@ t.eq( log[0].scope, scope, "mergeNewParams() executes changelayer listener with expected scope"); newParams.chickpeas = 151; - t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hash"); - var redraw = OpenLayers.Layer.prototype.redraw; - OpenLayers.Layer.prototype.redraw = function() { - t.eq(this.resolution, null, 'mergeNewParams sets layer resolution to null, causing redraw to call moveTo with zoomChanged set to true'); - }; + t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hash"); + + layer.redraw = function() { + t.ok(true, "layer.mergeNewParams calls layer.redraw"); + } layer.mergeNewParams(); - OpenLayers.Layer.prototype.redraw = redraw; } function test_Layer_HTTPRequest_getFullRequestString (t) { diff --git a/tests/Layer/KaMap.html b/tests/Layer/KaMap.html index b2c22cf650..b22917fda0 100644 --- a/tests/Layer/KaMap.html +++ b/tests/Layer/KaMap.html @@ -153,9 +153,7 @@ map.addLayer(layer); map.zoomToMaxExtent(); - - var redraw = OpenLayers.Layer.prototype.redraw; - OpenLayers.Layer.prototype.redraw = function() { + layer.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } @@ -167,8 +165,6 @@ newParams.chickpeas = 151; t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hashtable"); - - OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } diff --git a/tests/Layer/MapGuide.html b/tests/Layer/MapGuide.html index f71218071c..b1eb386c27 100644 --- a/tests/Layer/MapGuide.html +++ b/tests/Layer/MapGuide.html @@ -132,8 +132,7 @@ map.addLayer(layer); map.zoomToMaxExtent(); - var redraw = OpenLayers.Layer.prototype.redraw; - OpenLayers.Layer.prototype.redraw = function() { + layer.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } @@ -145,8 +144,6 @@ newParams.chickpeas = 151; t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hashtable"); - - OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } diff --git a/tests/Layer/MapServer.html b/tests/Layer/MapServer.html index ff8cdf4e53..16e59156e3 100644 --- a/tests/Layer/MapServer.html +++ b/tests/Layer/MapServer.html @@ -136,8 +136,7 @@ map.addLayer(layer); map.zoomToMaxExtent(); - var redraw = OpenLayers.Layer.prototype.redraw; - OpenLayers.Layer.prototype.redraw = function() { + layer.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } layer.mergeNewParams(newParams); @@ -148,8 +147,6 @@ newParams.chickpeas = 151; t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() makes clean copy of hashtable"); - - OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } diff --git a/tests/Layer/WMS.html b/tests/Layer/WMS.html index bb04560c88..a07b36c1d9 100644 --- a/tests/Layer/WMS.html +++ b/tests/Layer/WMS.html @@ -195,8 +195,7 @@ map.addLayer(layer); map.zoomToMaxExtent(); - var redraw = OpenLayers.Layer.prototype.redraw; - OpenLayers.Layer.prototype.redraw = function() { + layer.redraw = function() { t.ok(true, "layer is redrawn after new params merged"); } @@ -208,8 +207,6 @@ newParams.CHICKPEAS = 151; t.eq( layer.params.CHICKPEAS, "image/png", "mergeNewParams() makes clean copy of hashtable"); - - OpenLayers.Layer.prototype.redraw = redraw; map.destroy(); } From eedcaf0ba26c9c40190a55fa19cec66e3aaefc52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 4 Jan 2012 09:02:38 +0100 Subject: [PATCH 08/10] add a test to verify that Layer.HTTPRequest.mergeNewParams set resolution to null prior to calling redraw --- tests/Layer/HTTPRequest.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/Layer/HTTPRequest.html b/tests/Layer/HTTPRequest.html index 02311564f1..6539b12bef 100644 --- a/tests/Layer/HTTPRequest.html +++ b/tests/Layer/HTTPRequest.html @@ -65,7 +65,7 @@ } function test_Layer_HTTPRequest_mergeNewParams (t) { - t.plan( 8 ); + t.plan( 9 ); var map = new OpenLayers.Map('map'); layer = new OpenLayers.Layer.HTTPRequest(name, url, params, options); @@ -97,7 +97,9 @@ layer.redraw = function() { t.ok(true, "layer.mergeNewParams calls layer.redraw"); - } + t.ok(layer.resolution === null, "layer.mergeNewParams sets resolution to null"); + }; + layer.resolution = 'fake'; layer.mergeNewParams(); } From 78714f6de48de22eed3aebdb29fe5bc267ea4310 Mon Sep 17 00:00:00 2001 From: Pierre GIRAUD Date: Fri, 13 Jan 2012 12:12:35 +0100 Subject: [PATCH 09/10] Adding some documentation to the locationupdated documentation. No functional change. --- lib/OpenLayers/Control/Geolocate.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/OpenLayers/Control/Geolocate.js b/lib/OpenLayers/Control/Geolocate.js index 2daf898fb1..e037533bf9 100644 --- a/lib/OpenLayers/Control/Geolocate.js +++ b/lib/OpenLayers/Control/Geolocate.js @@ -24,7 +24,10 @@ OpenLayers.Control.Geolocate = OpenLayers.Class(OpenLayers.Control, { /** * Supported event types: - * - *locationupdated* Triggered when browser return a new position + * - *locationupdated* Triggered when browser return a new position. Listeners will + * receive an object with a 'position' property which is the lon lat position, as + * well as a 'point' property which the is location transform in the current map + * projection. * - *locationfailed* Triggered when geolocation has failed * - *locationuncapable* Triggered when control is activated on a browser * which doesn't support geolocation From a719de7e9394640ea8a48c27bd441cc3fb2761e7 Mon Sep 17 00:00:00 2001 From: Pierre GIRAUD Date: Fri, 13 Jan 2012 17:12:14 +0100 Subject: [PATCH 10/10] Fixing typo and documentation mistakes. No functional changes. --- lib/OpenLayers/Control/Geolocate.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/OpenLayers/Control/Geolocate.js b/lib/OpenLayers/Control/Geolocate.js index e037533bf9..28b93bb062 100644 --- a/lib/OpenLayers/Control/Geolocate.js +++ b/lib/OpenLayers/Control/Geolocate.js @@ -25,9 +25,9 @@ OpenLayers.Control.Geolocate = OpenLayers.Class(OpenLayers.Control, { /** * Supported event types: * - *locationupdated* Triggered when browser return a new position. Listeners will - * receive an object with a 'position' property which is the lon lat position, as - * well as a 'point' property which the is location transform in the current map - * projection. + * receive an object with a 'position' property which is the browser.geolocation.position + * native object, as well as a 'point' property which is the location transformed in the + * current map projection. * - *locationfailed* Triggered when geolocation has failed * - *locationuncapable* Triggered when control is activated on a browser * which doesn't support geolocation