61 lines
1.4 KiB
JavaScript
61 lines
1.4 KiB
JavaScript
|
|
defineSuite([
|
||
|
|
'Core/queryToObject'
|
||
|
|
], function(
|
||
|
|
queryToObject) {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
it('can decode data', function() {
|
||
|
|
var str = 'key1=some%20value&key2=a%2Fb';
|
||
|
|
var obj = queryToObject(str);
|
||
|
|
|
||
|
|
expect(obj).toEqual({
|
||
|
|
key1 : 'some value',
|
||
|
|
key2 : 'a/b'
|
||
|
|
});
|
||
|
|
|
||
|
|
str = 'spec=Core%2FobjectToQuery%20can%20encode%20data.&debug=Core%2FobjectToQuery%20can%20encode%20data.';
|
||
|
|
obj = queryToObject(str);
|
||
|
|
|
||
|
|
expect(obj).toEqual({
|
||
|
|
spec : 'Core/objectToQuery can encode data.',
|
||
|
|
debug : 'Core/objectToQuery can encode data.'
|
||
|
|
});
|
||
|
|
|
||
|
|
str = 'q=query+string';
|
||
|
|
obj = queryToObject(str);
|
||
|
|
|
||
|
|
expect(obj).toEqual({
|
||
|
|
q : 'query string'
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it('can decode arrays of data', function() {
|
||
|
|
var str = 'key=a&key=b';
|
||
|
|
var obj = queryToObject(str);
|
||
|
|
|
||
|
|
expect(obj).toEqual({
|
||
|
|
key : ['a', 'b']
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it('can use ; instead of &', function() {
|
||
|
|
var str = 'key=a;key=b;key2=c';
|
||
|
|
var obj = queryToObject(str);
|
||
|
|
|
||
|
|
expect(obj).toEqual({
|
||
|
|
key : ['a', 'b'],
|
||
|
|
key2 : 'c'
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it('can decode blank', function() {
|
||
|
|
expect(queryToObject('')).toEqual({});
|
||
|
|
});
|
||
|
|
|
||
|
|
it('requires queryString', function() {
|
||
|
|
expect(function() {
|
||
|
|
queryToObject();
|
||
|
|
}).toThrowDeveloperError();
|
||
|
|
});
|
||
|
|
});
|