From 1f481f3d38f21f21ab433dadf0f3a795930eea2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Junod?= Date: Wed, 27 Jan 2010 14:44:35 +0000 Subject: [PATCH] Don't create Folder name or description if foldersName or foldersDesc are null. r=pgiraud (closes #2417) git-svn-id: http://svn.openlayers.org/trunk/openlayers@9976 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Format/KML.js | 36 +++++++++++++++++++++--------------- tests/Format/KML.html | 18 ++++++++++++++++-- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/lib/OpenLayers/Format/KML.js b/lib/OpenLayers/Format/KML.js index 5046c04c60..b00bf37b71 100644 --- a/lib/OpenLayers/Format/KML.js +++ b/lib/OpenLayers/Format/KML.js @@ -32,19 +32,21 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, { /** * APIProperty: placemarksDesc - * {String} Name of the placemarks. Default is "No description available." + * {String} Name of the placemarks. Default is "No description available". */ placemarksDesc: "No description available", /** * APIProperty: foldersName - * {String} Name of the folders. Default is "OpenLayers export." + * {String} Name of the folders. Default is "OpenLayers export". + * If set to null, no name element will be created. */ foldersName: "OpenLayers export", /** * APIProperty: foldersDesc * {String} Description of the folders. Default is "Exported on [date]." + * If set to null, no description element will be created. */ foldersDesc: "Exported on " + new Date(), @@ -983,21 +985,25 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, { * {DOMElement} */ createFolderXML: function() { - // Folder name - var folderName = this.createElementNS(this.kmlns, "name"); - var folderNameText = this.createTextNode(this.foldersName); - folderName.appendChild(folderNameText); - - // Folder description - var folderDesc = this.createElementNS(this.kmlns, "description"); - var folderDescText = this.createTextNode(this.foldersDesc); - folderDesc.appendChild(folderDescText); - // Folder var folder = this.createElementNS(this.kmlns, "Folder"); - folder.appendChild(folderName); - folder.appendChild(folderDesc); - + + // Folder name + if (this.foldersName) { + var folderName = this.createElementNS(this.kmlns, "name"); + var folderNameText = this.createTextNode(this.foldersName); + folderName.appendChild(folderNameText); + folder.appendChild(folderName); + } + + // Folder description + if (this.foldersDesc) { + var folderDesc = this.createElementNS(this.kmlns, "description"); + var folderDescText = this.createTextNode(this.foldersDesc); + folderDesc.appendChild(folderDescText); + folder.appendChild(folderDesc); + } + return folder; }, diff --git a/tests/Format/KML.html b/tests/Format/KML.html index 3b871475ae..6f8d0973c5 100644 --- a/tests/Format/KML.html +++ b/tests/Format/KML.html @@ -66,9 +66,9 @@ t.plan(1); var kmlExpected = this.test_content; var options = { - folderName: "OpenLayers export", + foldersName: "OpenLayers export", foldersDesc: "Vector geometries from OpenLayers" - } + }; var format = new OpenLayers.Format.KML(options); var features = format.read(kmlExpected); @@ -76,6 +76,20 @@ var kmlOut = kmlOut.replace(/<\?[^>]*\?>/, ''); // Remove XML Prolog t.eq(kmlOut, kmlExpected, "correctly writes an KML doc string"); } + + function test_Format_KML_write_noNameDesc(t) { + t.plan(1); + var format = new OpenLayers.Format.KML({ + foldersName: null, + foldersDesc: null + }); + var geom = new OpenLayers.Geometry.Point(0, 0) + var feature = new OpenLayers.Feature.Vector(geom); + feature.id = 42; + var kmlOut = format.write(feature); + var expected = '42No description available0,0' + t.eq(kmlOut, expected, "null foldersName or foldersDesc don't create elements"); + } function test_Format_KML_write_multis(t) { /**