diff --git a/lib/OpenLayers/Format/SLD/v1.js b/lib/OpenLayers/Format/SLD/v1.js index 0c9846515c..13fb9dba81 100644 --- a/lib/OpenLayers/Format/SLD/v1.js +++ b/lib/OpenLayers/Format/SLD/v1.js @@ -686,7 +686,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.XML, { {symbolizer: symbolizer, key: "fillColor"} ); } - if(symbolizer.fillOpacity) { + if(symbolizer.fillOpacity != null) { this.writeNode( node, "CssParameter", {symbolizer: symbolizer, key: "fillOpacity"} @@ -890,7 +890,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.XML, { if(options.attributes) { this.setAttributes(node, options.attributes); } - if(options.value) { + if(options.value != null) { node.appendChild(this.createTextNode(options.value)); } return node; diff --git a/tests/Format/SLD/v1_0_0.html b/tests/Format/SLD/v1_0_0.html index b7725af483..7139b3e32a 100644 --- a/tests/Format/SLD/v1_0_0.html +++ b/tests/Format/SLD/v1_0_0.html @@ -138,7 +138,7 @@ } function test_write(t) { - t.plan(1); + t.plan(2); // read first - testing that write produces the SLD aboce var parser = new OpenLayers.Format.SLD.v1_0_0(); @@ -148,6 +148,19 @@ var node = parser.write(obj); t.xml_eq(node, sld, "SLD correctly written"); + // test that 0 fill opacity gets written + var symbolizer = { + fillColor: "red", + fillOpacity: 0 + }; + var root = parser.createElementNSPlus("PolygonSymbolizer"); + var got = parser.writeNode(root, "Fill", symbolizer); + var expect = + '' + + 'red' + + '0' + + ''; + t.xml_eq(got, expect, "zero fill opacity written"); } function test_writeTextSymbolizer(t) {