| Index: LayoutTests/fast/domurl/url-searchparams-constructor.html
|
| diff --git a/LayoutTests/fast/domurl/url-searchparams-constructor.html b/LayoutTests/fast/domurl/url-searchparams-constructor.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9b8d5387b7ba5f5e3f3a8d58f562ef6acc487829
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/domurl/url-searchparams-constructor.html
|
| @@ -0,0 +1,132 @@
|
| +<!DOCTYPE html>
|
| +<meta charset="utf-8">
|
| +<link rel="help" href="http://url.spec.whatwg.org/#urlsearchparams">
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<script src="resources/testharness-extras.js"></script>
|
| +<script>
|
| +test(function() {
|
| + var params = new URLSearchParams();
|
| + assert_equals(params + '', '');
|
| + params = new URLSearchParams('');
|
| + assert_equals(params + '', '');
|
| + params = new URLSearchParams('a=b');
|
| + assert_equals(params + '', 'a=b');
|
| + params = new URLSearchParams(params);
|
| + assert_equals(params + '', 'a=b');
|
| +}, 'Basic URLSearchParams construction');
|
| +
|
| +test(function() {
|
| + assert_type_error(function () { URLSearchParams(); }, 'Failed to construct \'URLSearchParams\': Please use the \'new\' operator, this DOM object constructor cannot be called as a function.');
|
| + assert_type_error(function () { new URLSearchParams(DOMException.prototype); });
|
| +
|
| + var params = new URLSearchParams('');
|
| + assert_true(params != null, 'constructor returned non-null value.');
|
| + assert_equals(params.__proto__, URLSearchParams.prototype, 'expected URLSearchParams.prototype as prototype.');
|
| +
|
| + params = new URLSearchParams({});
|
| + assert_equals(params + '', '%5Bobject+Object%5D=');
|
| +}, 'URLSearchParams constructor, empty.');
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b');
|
| + assert_true(params != null, 'constructor returned non-null value.');
|
| + assert_true(params.has('a'), 'Search params object has name "a"');
|
| + assert_false(params.has('b'), 'Search params object has not got name "b"');
|
| +
|
| + var params = new URLSearchParams('a=b&c');
|
| + assert_true(params != null, 'constructor returned non-null value.');
|
| + assert_true(params.has('a'), 'Search params object has name "a"');
|
| + assert_true(params.has('c'), 'Search params object has name "c"');
|
| +
|
| + var params = new URLSearchParams('&a&&& &&&&&a+b=& c&m%c3%b8%c3%b8');
|
| + assert_true(params != null, 'constructor returned non-null value.');
|
| + assert_true(params.has('a'), 'Search params object has name "a"');
|
| + assert_true(params.has('a b'), 'Search params object has name "a b"');
|
| + assert_true(params.has(' '), 'Search params object has name " "');
|
| + assert_false(params.has('c'), 'Search params object did not have the name "c"');
|
| + assert_true(params.has(' c'), 'Search params object has name " c"');
|
| + assert_true(params.has('møø'), 'Search params object has name "møø"');
|
| +
|
| +}, 'URLSearchParams constructor, string.');
|
| +
|
| +test(function() {
|
| + var seed = new URLSearchParams('a=b&c=d');
|
| + var params = new URLSearchParams(seed);
|
| + assert_true(params != null, 'constructor returned non-null value.');
|
| + assert_equals(params.get('a'), 'b');
|
| + assert_equals(params.get('c'), 'd');
|
| + assert_false(params.has('d'));
|
| + // The name-value pairs are copied when created; later updates
|
| + // should not be observable.
|
| + seed.append('e', 'f');
|
| + assert_false(params.has('e'));
|
| +
|
| + params.append('g', 'h');
|
| + assert_false(seed.has('g'));
|
| +
|
| +}, 'URLSearchParams constructor, object.');
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b+c');
|
| + assert_equals(params.get('a'), 'b c');
|
| + params = new URLSearchParams('a+b=c');
|
| + assert_equals(params.get('a b'), 'c');
|
| +}, 'Parse +');
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b c');
|
| + assert_equals(params.get('a'), 'b c');
|
| + params = new URLSearchParams('a b=c');
|
| + assert_equals(params.get('a b'), 'c');
|
| +}, 'Parse space');
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b%20c');
|
| + assert_equals(params.get('a'), 'b c');
|
| + params = new URLSearchParams('a%20b=c');
|
| + assert_equals(params.get('a b'), 'c');
|
| +}, 'Parse %20');
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b\0c');
|
| + assert_equals(params.get('a'), 'b\0c');
|
| + params = new URLSearchParams('a\0b=c');
|
| + assert_equals(params.get('a\0b'), 'c');
|
| +}, 'Parse \\0');
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b%00c');
|
| + assert_equals(params.get('a'), 'b\0c');
|
| + params = new URLSearchParams('a%00b=c');
|
| + assert_equals(params.get('a\0b'), 'c');
|
| +}, 'Parse %00');
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b\u2384');
|
| + assert_equals(params.get('a'), 'b\u2384');
|
| + params = new URLSearchParams('a\u2384b=c');
|
| + assert_equals(params.get('a\u2384b'), 'c');
|
| +}, 'Parse \u2384'); // Unicode Character 'COMPOSITION SYMBOL' (U+2384)
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b%e2%8e%84');
|
| + assert_equals(params.get('a'), 'b\u2384');
|
| + params = new URLSearchParams('a%e2%8e%84b=c');
|
| + assert_equals(params.get('a\u2384b'), 'c');
|
| +}, 'Parse %e2%8e%84'); // Unicode Character 'COMPOSITION SYMBOL' (U+2384)
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b\uD83D\uDCA9c');
|
| + assert_equals(params.get('a'), 'b\uD83D\uDCA9c');
|
| + params = new URLSearchParams('a\uD83D\uDCA9b=c');
|
| + assert_equals(params.get('a\uD83D\uDCA9b'), 'c');
|
| +}, 'Parse \uD83D\uDCA9'); // Unicode Character 'PILE OF POO' (U+1F4A9)
|
| +
|
| +test(function() {
|
| + var params = new URLSearchParams('a=b%f0%9f%92%a9c');
|
| + assert_equals(params.get('a'), 'b\uD83D\uDCA9c');
|
| + params = new URLSearchParams('a%f0%9f%92%a9b=c');
|
| + assert_equals(params.get('a\uD83D\uDCA9b'), 'c');
|
| +}, 'Parse %f0%9f%92%a9'); // Unicode Character 'PILE OF POO' (U+1F4A9)
|
| +</script>
|
|
|