From a9e087b5b9fc9a633a3d0386802db6ad6feb94bb Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Fri, 27 Mar 2009 02:02:58 +0000 Subject: [PATCH] Writing sld:Mark fill and stroke in cases where graphicName is not provided. r=ahocevar (closes #2008) git-svn-id: http://svn.openlayers.org/trunk/openlayers@9139 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Format/SLD/v1.js | 6 ++-- tests/Format/SLD/v1_0_0.html | 63 +++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/lib/OpenLayers/Format/SLD/v1.js b/lib/OpenLayers/Format/SLD/v1.js index cb52b3775d..187bd9cc4a 100644 --- a/lib/OpenLayers/Format/SLD/v1.js +++ b/lib/OpenLayers/Format/SLD/v1.js @@ -786,7 +786,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, { var node = this.createElementNSPlus("Graphic"); if(symbolizer.externalGraphic != undefined) { this.writeNode("ExternalGraphic", symbolizer, node); - } else if(symbolizer.graphicName) { + } else { this.writeNode("Mark", symbolizer, node); } @@ -813,7 +813,9 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, { }, "Mark": function(symbolizer) { var node = this.createElementNSPlus("Mark"); - this.writeNode("WellKnownName", symbolizer.graphicName, node); + if(symbolizer.graphicName) { + this.writeNode("WellKnownName", symbolizer.graphicName, node); + } this.writeNode("Fill", symbolizer, node); this.writeNode("Stroke", symbolizer, node); return node; diff --git a/tests/Format/SLD/v1_0_0.html b/tests/Format/SLD/v1_0_0.html index fd87a00b90..e7843723c4 100644 --- a/tests/Format/SLD/v1_0_0.html +++ b/tests/Format/SLD/v1_0_0.html @@ -214,6 +214,69 @@ t.xml_eq(got, expect, "zero fill opacity written"); } + function test_writePointSymbolizer(t) { + + t.plan(3); + + var parser = new OpenLayers.Format.SLD.v1_0_0(); + var symbolizer, node, exp; + + // test symbolizer with fill color only + symbolizer = { + "fillColor": "blue" + }; + node = parser.writeNode("sld:PointSymbolizer", symbolizer); + exp = + '' + + '' + + '' + + '' + + 'blue' + + '' + + '' + + '' + + '' + + ''; + t.xml_eq(node, exp, "fillColor only written"); + + // test symbolizer with stroke color only + symbolizer = { + "strokeColor": "blue" + }; + node = parser.writeNode("sld:PointSymbolizer", symbolizer); + exp = + '' + + '' + + '' + + '' + + '' + + 'blue' + + '' + + '' + + '' + + ''; + t.xml_eq(node, exp, "strokeColor only written"); + + // test symbolizer with graphic name only + symbolizer = { + "graphicName": "star" + }; + node = parser.writeNode("sld:PointSymbolizer", symbolizer); + exp = + '' + + '' + + '' + + 'star' + + '' + + '' + + '' + + '' + + ''; + t.xml_eq(node, exp, "graphicName only written"); + + + } + function test_writeTextSymbolizer(t) { t.plan(1); var parser = new OpenLayers.Format.SLD.v1_0_0();