diff --git a/lib/OpenLayers/Layer/WMS.js b/lib/OpenLayers/Layer/WMS.js index 371c626caf..4ed105fe49 100644 --- a/lib/OpenLayers/Layer/WMS.js +++ b/lib/OpenLayers/Layer/WMS.js @@ -237,7 +237,7 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, { */ getFullRequestString:function(newParams, altUrl) { var mapProjection = this.map.getProjectionObject(); - var projectionCode = this.projection.equals(mapProjection) ? + var projectionCode = this.projection && this.projection.equals(mapProjection) ? this.projection.getCode() : mapProjection.getCode(); var value = (projectionCode == "none") ? null : projectionCode; diff --git a/tests/Layer/WMS.html b/tests/Layer/WMS.html index 30d4e6b5c6..102e080edb 100644 --- a/tests/Layer/WMS.html +++ b/tests/Layer/WMS.html @@ -229,7 +229,7 @@ function test_Layer_WMS_getFullRequestString (t) { - t.plan( 3 ); + t.plan( 4 ); var map = new OpenLayers.Map('map'); map.projection = "xx"; var tUrl = "http://octo.metacarta.com/cgi-bin/mapserv"; @@ -271,6 +271,20 @@ "getFullRequestString() uses the layer projection if it equals the map projection"); map.destroy(); + map = new OpenLayers.Map("map", {projection: "EPSG:4326"}); + map.addLayer(new OpenLayers.Layer(null, {isBaseLayer: true})); + tLayer = new OpenLayers.Layer.WMS(name, tUrl); + tLayer.map = map; + var error; + try { + tLayer.getFullRequestString(); + error = false; + } catch(err) { + error = true; + } + t.ok(!error, "no error on getFullRequestString if layer has no projection"); + map.destroy(); + } function test_Layer_WMS_setOpacity (t) {