Changeset 2232
- Timestamp:
- 02/16/07 14:38:00 (2 years ago)
- Files:
-
- trunk/openlayers/lib/OpenLayers/Util.js (modified) (2 diffs)
- trunk/openlayers/tests/test_Util.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openlayers/lib/OpenLayers/Util.js
r2231 r2232 395 395 * http parameter notation. 396 396 * (ex. <i>"key1=value1&key2=value2&key3=value3"</i>) 397 * If a parameter is actually a list, that parameter will then 398 * be set to a comma-seperated list of values (foo,bar) instead 399 * of being URL escaped (foo%3Abar). 397 400 * @type String 398 401 */ … … 401 404 402 405 for (var key in params) { 403 var value = params[key]; 404 if ((value != null) && (typeof value != 'function')) { 405 paramsArray.push(encodeURIComponent(key) + "=" + 406 encodeURIComponent(value)); 407 } 406 var value = params[key]; 407 if ((value != null) && (typeof value != 'function')) { 408 var encodedValue; 409 if (typeof value == 'object' && value.constructor == Array) { 410 /* value is an array; encode items and separate with "," */ 411 var encodedItemArray = new Array(); 412 for (var itemIndex=0; itemIndex<value.length; itemIndex++) { 413 encodedItemArray.push(encodeURIComponent(value[itemIndex])); 414 } 415 encodedValue = encodedItemArray.join(","); 416 } 417 else { 418 /* value is a string; simply encode */ 419 encodedValue = encodeURIComponent(value); 420 } 421 paramsArray.push(encodeURIComponent(key) + "=" + encodedValue); 422 } 408 423 } 409 424 trunk/openlayers/tests/test_Util.html
r2162 r2232 178 178 179 179 function test_07_Util_getParameterString(t) { 180 t.plan( 2);180 t.plan( 4 ); 181 181 182 182 var params = { foo: "bar", … … 186 186 t.eq( OpenLayers.Util.getParameterString(params), "foo=bar&chicken=1.5", "getParameterString returns correctly"); 187 187 t.eq( OpenLayers.Util.getParameterString({'a:':'b='}), "a%3A=b%3D", "getParameterString returns correctly with non-ascii keys/values"); 188 189 190 // Parameters which are a list should end up being a comma-seperated 191 // list of the URL encoded strings 192 var params = { foo: ["bar,baz"] }; 193 t.eq( OpenLayers.Util.getParameterString(params), "foo=bar%2Cbaz", "getParameterString encodes , correctly in arrays"); 194 195 var params = { foo: ["bar","baz,"] }; 196 t.eq( OpenLayers.Util.getParameterString(params), "foo=bar,baz%2C", "getParameterString returns with list of CSVs when given a list. "); 188 197 } 189 198
