2015-04-29 02:07:55 -04:00
|
|
|
import {
|
|
|
|
AsyncTestCompleter,
|
|
|
|
beforeEach,
|
|
|
|
ddescribe,
|
|
|
|
describe,
|
|
|
|
expect,
|
|
|
|
iit,
|
|
|
|
inject,
|
|
|
|
it,
|
|
|
|
xit
|
|
|
|
} from 'angular2/test_lib';
|
2015-08-20 17:28:25 -04:00
|
|
|
import {URLSearchParams} from 'angular2/src/http/url_search_params';
|
2015-04-29 02:07:55 -04:00
|
|
|
|
|
|
|
export function main() {
|
|
|
|
describe('URLSearchParams', () => {
|
|
|
|
it('should conform to spec', () => {
|
|
|
|
var paramsString = "q=URLUtils.searchParams&topic=api";
|
|
|
|
var searchParams = new URLSearchParams(paramsString);
|
|
|
|
|
|
|
|
// Tests borrowed from example at
|
|
|
|
// https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
|
|
|
|
// Compliant with spec described at https://url.spec.whatwg.org/#urlsearchparams
|
|
|
|
expect(searchParams.has("topic")).toBe(true);
|
|
|
|
expect(searchParams.has("foo")).toBe(false);
|
2015-06-19 15:14:12 -04:00
|
|
|
expect(searchParams.get("topic")).toEqual("api");
|
2015-04-29 02:07:55 -04:00
|
|
|
expect(searchParams.getAll("topic")).toEqual(["api"]);
|
|
|
|
expect(searchParams.get("foo")).toBe(null);
|
|
|
|
searchParams.append("topic", "webdev");
|
|
|
|
expect(searchParams.getAll("topic")).toEqual(["api", "webdev"]);
|
2015-06-19 15:14:12 -04:00
|
|
|
expect(searchParams.toString()).toEqual("q=URLUtils.searchParams&topic=api&topic=webdev");
|
2015-04-29 02:07:55 -04:00
|
|
|
searchParams.delete("topic");
|
2015-06-19 15:14:12 -04:00
|
|
|
expect(searchParams.toString()).toEqual("q=URLUtils.searchParams");
|
2015-07-13 14:47:10 -04:00
|
|
|
|
|
|
|
// Test default constructor
|
|
|
|
expect(new URLSearchParams().toString()).toBe("");
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
it('should support map-like merging operation via setAll()', () => {
|
|
|
|
var mapA = new URLSearchParams('a=1&a=2&a=3&c=8');
|
|
|
|
var mapB = new URLSearchParams('a=4&a=5&a=6&b=7');
|
|
|
|
mapA.setAll(mapB);
|
|
|
|
expect(mapA.has('a')).toBe(true);
|
|
|
|
expect(mapA.has('b')).toBe(true);
|
|
|
|
expect(mapA.has('c')).toBe(true);
|
|
|
|
expect(mapA.getAll('a')).toEqual(['4']);
|
|
|
|
expect(mapA.getAll('b')).toEqual(['7']);
|
|
|
|
expect(mapA.getAll('c')).toEqual(['8']);
|
|
|
|
expect(mapA.toString()).toEqual('a=4&c=8&b=7');
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
it('should support multimap-like merging operation via appendAll()', () => {
|
|
|
|
var mapA = new URLSearchParams('a=1&a=2&a=3&c=8');
|
|
|
|
var mapB = new URLSearchParams('a=4&a=5&a=6&b=7');
|
|
|
|
mapA.appendAll(mapB);
|
|
|
|
expect(mapA.has('a')).toBe(true);
|
|
|
|
expect(mapA.has('b')).toBe(true);
|
|
|
|
expect(mapA.has('c')).toBe(true);
|
|
|
|
expect(mapA.getAll('a')).toEqual(['1', '2', '3', '4', '5', '6']);
|
|
|
|
expect(mapA.getAll('b')).toEqual(['7']);
|
|
|
|
expect(mapA.getAll('c')).toEqual(['8']);
|
|
|
|
expect(mapA.toString()).toEqual('a=1&a=2&a=3&a=4&a=5&a=6&c=8&b=7');
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
it('should support multimap-like merging operation via replaceAll()', () => {
|
|
|
|
var mapA = new URLSearchParams('a=1&a=2&a=3&c=8');
|
|
|
|
var mapB = new URLSearchParams('a=4&a=5&a=6&b=7');
|
|
|
|
mapA.replaceAll(mapB);
|
|
|
|
expect(mapA.has('a')).toBe(true);
|
|
|
|
expect(mapA.has('b')).toBe(true);
|
|
|
|
expect(mapA.has('c')).toBe(true);
|
|
|
|
expect(mapA.getAll('a')).toEqual(['4', '5', '6']);
|
|
|
|
expect(mapA.getAll('b')).toEqual(['7']);
|
|
|
|
expect(mapA.getAll('c')).toEqual(['8']);
|
|
|
|
expect(mapA.toString()).toEqual('a=4&a=5&a=6&c=8&b=7');
|
2015-04-29 02:07:55 -04:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|