| 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..c286bc06f9d699ca17ada1c9cbac6e3b177f425a
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/domurl/url-searchparams-constructor.html
|
| @@ -0,0 +1,143 @@
|
| +<!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>
|
| +function assert_type_error(f, msg) {
|
| + var e;
|
| + try {
|
| + f();
|
| + } catch (ex) {
|
| + e = ex;
|
| + }
|
| + assert_true(e instanceof TypeError, "Expected a TypeError");
|
| + if (msg)
|
| + assert_equals(e.message, msg);
|
| +}
|
| +
|
| +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>
|
|
|