fix up sequence of elements in Web Map Context 1.1 Format when writing, thanks trondmm for the catch and initial patch, r=tschaub (closes #2174)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@9614 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
bartvde
2009-08-07 15:59:43 +00:00
parent 01d4330c81
commit 5964a8db60
4 changed files with 58 additions and 26 deletions
-9
View File
@@ -641,15 +641,6 @@ OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
node.appendChild(this.write_wmc_MetadataURL(layer)); node.appendChild(this.write_wmc_MetadataURL(layer));
} }
// optional FormatList element
node.appendChild(this.write_wmc_FormatList(layer));
// optional StyleList element
node.appendChild(this.write_wmc_StyleList(layer));
// OpenLayers specific properties go in an Extension element
node.appendChild(this.write_wmc_LayerExtension(layer));
return node; return node;
}, },
+25
View File
@@ -44,6 +44,31 @@ OpenLayers.Format.WMC.v1_0_0 = OpenLayers.Class(
); );
}, },
/**
* Method: write_wmc_Layer
* Create a Layer node given a layer object.
*
* Parameters:
* layer - {<OpenLayers.Layer.WMS>} Layer object.
*
* Returns:
* {Element} A WMC Layer element node.
*/
write_wmc_Layer: function(layer) {
var node = OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(
this, [layer]
);
// optional FormatList element
node.appendChild(this.write_wmc_FormatList(layer));
// optional StyleList element
node.appendChild(this.write_wmc_StyleList(layer));
// OpenLayers specific properties go in an Extension element
node.appendChild(this.write_wmc_LayerExtension(layer));
},
CLASS_NAME: "OpenLayers.Format.WMC.v1_0_0" CLASS_NAME: "OpenLayers.Format.WMC.v1_0_0"
}); });
+11 -2
View File
@@ -95,7 +95,7 @@ OpenLayers.Format.WMC.v1_1_0 = OpenLayers.Class(
this.namespaces.sld, "sld:MinScaleDenominator" this.namespaces.sld, "sld:MinScaleDenominator"
); );
minSD.appendChild(this.createTextNode(layer.maxScale.toPrecision(10))); minSD.appendChild(this.createTextNode(layer.maxScale.toPrecision(10)));
node.insertBefore(minSD, node.childNodes[3]); node.appendChild(minSD);
} }
if(layer.options.resolutions || layer.options.scales || if(layer.options.resolutions || layer.options.scales ||
@@ -104,9 +104,18 @@ OpenLayers.Format.WMC.v1_1_0 = OpenLayers.Class(
this.namespaces.sld, "sld:MaxScaleDenominator" this.namespaces.sld, "sld:MaxScaleDenominator"
); );
maxSD.appendChild(this.createTextNode(layer.minScale.toPrecision(10))); maxSD.appendChild(this.createTextNode(layer.minScale.toPrecision(10)));
node.insertBefore(maxSD, node.childNodes[4]); node.appendChild(maxSD);
} }
// optional FormatList element
node.appendChild(this.write_wmc_FormatList(layer));
// optional StyleList element
node.appendChild(this.write_wmc_StyleList(layer));
// OpenLayers specific properties go in an Extension element
node.appendChild(this.write_wmc_LayerExtension(layer));
return node; return node;
}, },
+8 -1
View File
@@ -9,7 +9,7 @@
t.debug_print("Safari has wierd behavior with getElementsByTagNameNS: the result is that we can't run these tests there. Patches welcome."); t.debug_print("Safari has wierd behavior with getElementsByTagNameNS: the result is that we can't run these tests there. Patches welcome.");
return; return;
} }
t.plan(10); t.plan(12);
// direct construction of a parser for a unit test // direct construction of a parser for a unit test
var wmc = new OpenLayers.Format.WMC.v1_1_0(); var wmc = new OpenLayers.Format.WMC.v1_1_0();
@@ -63,6 +63,13 @@
t.eq(layer.minScale.toPrecision(10), wmc.getChildValue(maxList[0]), t.eq(layer.minScale.toPrecision(10), wmc.getChildValue(maxList[0]),
"(scales) node written with correct MaxScaleDenominator value"); "(scales) node written with correct MaxScaleDenominator value");
layer.metadataURL = 'http://foo';
node = wmc.write_wmc_Layer(layer);
t.eq(node.childNodes[3].localName || node.childNodes[3].nodeName.split(":").pop(),
'MetadataURL', "MinScaleDenominator is written after MetadataURL, so third node should be MetadataURL");
t.eq(node.childNodes[4].localName || node.childNodes[4].nodeName.split(":").pop(),
'MinScaleDenominator', "MinScaleDenominator is written after MetadataURL, so fourth node should be MinScaleDenominator");
} }