OpenLayers.Util.getParameters: decodeURIComponent the keys, not only the values. r=elemoine (closes #2327)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10071 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -980,10 +980,7 @@ OpenLayers.Util.getParameters = function(url) {
|
|||||||
var value = keyValue[1] || ''; //empty string if no value
|
var value = keyValue[1] || ''; //empty string if no value
|
||||||
|
|
||||||
//decode individual values
|
//decode individual values
|
||||||
value = value.split(",");
|
value = decodeURIComponent(value).split(",");
|
||||||
for(var j=0, jlen=value.length; j<jlen; j++) {
|
|
||||||
value[j] = decodeURIComponent(value[j]);
|
|
||||||
}
|
|
||||||
|
|
||||||
//if there's only one value, do not return as array
|
//if there's only one value, do not return as array
|
||||||
if (value.length == 1) {
|
if (value.length == 1) {
|
||||||
|
|||||||
@@ -892,7 +892,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test_Util_getParameters(t) {
|
function test_Util_getParameters(t) {
|
||||||
t.plan(6);
|
t.plan(8);
|
||||||
|
|
||||||
t.eq(OpenLayers.Util.getParameters('http://www.example.com'), {},
|
t.eq(OpenLayers.Util.getParameters('http://www.example.com'), {},
|
||||||
"getParameters works when args = ''");
|
"getParameters works when args = ''");
|
||||||
@@ -907,9 +907,15 @@
|
|||||||
t.eq(OpenLayers.Util.getParameters('http://www.example.com?foo=bar#bugssucks'),
|
t.eq(OpenLayers.Util.getParameters('http://www.example.com?foo=bar#bugssucks'),
|
||||||
{'foo': 'bar'},
|
{'foo': 'bar'},
|
||||||
"getParameters works when using a fragment identifier");
|
"getParameters works when using a fragment identifier");
|
||||||
t.eq(OpenLayers.Util.getParameters('http://www.example.com?foo=bar,pub,disco'),
|
t.eq(OpenLayers.Util.getParameters('http://www.example.com?foo=bar%3Aone'),
|
||||||
{'foo': ['bar', 'pub', 'disco']},
|
{'foo': 'bar:one'},
|
||||||
|
"getParameters works with percent encoded values");
|
||||||
|
t.eq(OpenLayers.Util.getParameters('http://www.example.com?foo=bar:one,pub,disco'),
|
||||||
|
{'foo': ['bar:one', 'pub', 'disco']},
|
||||||
"getParameters works with a comma-separated value (parses into array)");
|
"getParameters works with a comma-separated value (parses into array)");
|
||||||
|
t.eq(OpenLayers.Util.getParameters('http://www.example.com?foo=bar%3Aone%2Cpub%2Cdisco'),
|
||||||
|
{'foo': ['bar:one', 'pub', 'disco']},
|
||||||
|
"getParameters works with a URL encoded comma-separated values (parses into array)");
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_Util_getArgs(t) {
|
function test_Util_getArgs(t) {
|
||||||
|
|||||||
Reference in New Issue
Block a user