diff --git a/lib/OpenLayers/Layer/WMS.js b/lib/OpenLayers/Layer/WMS.js index 4c9aefb8f2..44181cf55a 100644 --- a/lib/OpenLayers/Layer/WMS.js +++ b/lib/OpenLayers/Layer/WMS.js @@ -245,6 +245,10 @@ OpenLayers.Layer.WMS = OpenLayers.Class(OpenLayers.Layer.Grid, { } else { this.params.SRS = value; } + + if (typeof this.params.TRANSPARENT == "boolean") { + newParams.TRANSPARENT = this.params.TRANSPARENT ? "TRUE" : "FALSE"; + } return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply( this, arguments); diff --git a/tests/Layer/WMS.html b/tests/Layer/WMS.html index 6fb3b06e4e..05b2adb64c 100644 --- a/tests/Layer/WMS.html +++ b/tests/Layer/WMS.html @@ -80,13 +80,11 @@ var tParams = OpenLayers.Util.extend({}, OpenLayers.Util.upperCaseObject(params)); tParams = OpenLayers.Util.extend(tParams, { - SERVICE: "WMS", VERSION: "1.1.1", - REQUEST: "GetMap", STYLES: "", - SRS: "EPSG:4326", BBOX: [1,2,3,4], + BBOX: [1,2,3,4], WIDTH: "256", HEIGHT: "256" }); t.eq( img.src, - url + "?" + OpenLayers.Util.getParameterString(tParams), + layer.getFullRequestString(tParams), "image src is created correctly via addtile" ); t.eq( tile.frame.style.top, "6px", "image top is set correctly via addtile" ); t.eq( tile.frame.style.left, "5px", "image top is set correctly via addtile" ); @@ -97,7 +95,7 @@ else t.ok( firstChild instanceof HTMLElement, "div first child is an image object" ); t.eq( firstChild.src, - url + "?" + OpenLayers.Util.getParameterString(tParams), + layer.getFullRequestString(tParams), "div first child is correct image object" ); t.eq( tile.position.toString(), "x=5,y=6", "Position of tile is set correctly." ); map.destroy(); @@ -118,13 +116,11 @@ var tParams = OpenLayers.Util.extend({}, OpenLayers.Util.upperCaseObject(params)); tParams = OpenLayers.Util.extend(tParams, { - SERVICE: "WMS", VERSION: "1.1.1", - REQUEST: "GetMap", STYLES: "", - SRS: "EPSG:4326", BBOX: "1,2,3,4", + BBOX: "1,2,3,4", WIDTH: "256", HEIGHT: "256" }); t.eq( img.src, - url + "?" + OpenLayers.Util.getParameterString(tParams), + layer.getFullRequestString(tParams), "image src is created correctly via addtile" ); t.eq( tile.frame.style.top, "6px", "image top is set correctly via addtile" ); t.eq( tile.frame.style.left, "5px", "image top is set correctly via addtile" ); @@ -135,7 +131,7 @@ else t.ok( firstChild instanceof HTMLElement, "div first child is an image object" ); t.eq( firstChild.src, - url + "?" + OpenLayers.Util.getParameterString(tParams), + layer.getFullRequestString(tParams), "div first child is correct image object" ); t.eq( tile.position.toString(), "x=5,y=6", "Position of tile is set correctly." ); map.destroy(); @@ -544,6 +540,28 @@ map.destroy(); } + + function test_transparent(t) { + t.plan(5); + var map = new OpenLayers.Map("map", {allOverlays: true}); + var layer = new OpenLayers.Layer.WMS( + "OpenLayers WMS", + "http://myserver.org/wms?", + {layers: 'mylayer', transparent: true} + ); + map.addLayer(layer); + + t.eq(typeof layer.params.TRANSPARENT, "boolean", "transparent param is boolean"); + t.ok(layer.getFullRequestString({}).indexOf("TRANSPARENT=TRUE") != -1, "Boolean transparent param value is uppercase TRUE"); + layer.mergeNewParams({transparent: false}); + t.ok(layer.getFullRequestString({}).indexOf("TRANSPARENT=FALSE") != -1, "Boolean transparent param value is uppercase FALSE"); + + layer.mergeNewParams({transparent: "true"}); + t.eq(typeof layer.params.TRANSPARENT, "string", "transparent param is string"); + t.ok(layer.getFullRequestString({}).indexOf("TRANSPARENT=true") != -1, "transparent param value passed as provided if String"); + + map.destroy(); + }