Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: LayoutTests/fast/domurl/url-searchparams.html

Issue 143313002: Implement URLSearchParams. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Handle dependency between URLUtils interfaces and URLSearchParams Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <link rel="help" href="http://url.spec.whatwg.org/#interface-urlsearchparams">
3 <script src="../../resources/testharness.js"></script>
4 <script src="../../resources/testharnessreport.js"></script>
5 <script>
6 test(function() {
7 assert_true("URLSearchParams" in window);
8 assert_true("toString" in URLSearchParams.prototype);
9 assert_true("append" in URLSearchParams.prototype);
10 assert_true("delete" in URLSearchParams.prototype);
11 assert_true("get" in URLSearchParams.prototype);
12 assert_true("getAll" in URLSearchParams.prototype);
13 assert_true("has" in URLSearchParams.prototype);
14 assert_true("set" in URLSearchParams.prototype);
15 }, 'URLSearchParams interface');
16
17 test(function() {
18 try {
19 var urls = URLSearchParams();
20 assert_unreached("Invoking URLSearchParams as a function did not throw a n exception.");
21 } catch (e) {
22 assert_true(e instanceof TypeError);
23 }
24 var urls = new URLSearchParams("");
25 assert_true(urls != null, "constructor returned non-null value.");
26 assert_equals(urls.__proto__, URLSearchParams.prototype, "expected URLSearch Params.prototype as prototype.");
27 }, 'URLSearchParams constructor, empty.');
28
29 test(function() {
30 var urls = new URLSearchParams("a=b");
31 assert_true(urls != null, "constructor returned non-null value.");
32 assert_true(urls.has("a"), "Search params object has name 'a'");
33 assert_false(urls.has("b"), "Search params object has not got name 'b'");
34
35 var urls = new URLSearchParams("a=b&c");
36 assert_true(urls != null, "constructor returned non-null value.");
37 assert_true(urls.has("a"), "Search params object has name 'a'");
38 assert_true(urls.has("c"), "Search params object has name 'c'");
39
40 var urls = new URLSearchParams("&a&&& &&&&&a+b=& c&m%c3%b8%c3%b8");
41 assert_true(urls != null, "constructor returned non-null value.");
42 assert_true(urls.has("a"), "Search params object has name 'a'");
43 assert_true(urls.has("a b"), "Search params object has name 'a b'");
44 assert_true(urls.has(" "), "Search params object has name ' '");
45 assert_false(urls.has("c"), "Search params object did not have the name 'c'" );
46 assert_true(urls.has(" c"), "Search params object has name ' c'");
47 assert_true(urls.has("møø"), "Search params object has name 'møø'");
48
49 }, 'URLSearchParams constructor, string.');
50
51 test(function() {
52 var seed = new URLSearchParams("a=b&c=d");
53 var urls = new URLSearchParams(seed);
54 assert_true(urls != null, "constructor returned non-null value.");
55 assert_equals(urls.get("a"), "b");
56 assert_equals(urls.get("c"), "d");
57 assert_false(urls.has("d"));
58 // The name-value pairs are copied when created; later updates
59 // should not be observable.
60 seed.append("e", "f");
61 assert_false(urls.has("e"));
62
63 urls.append("g", "h");
64 assert_false(seed.has("g"));
65
66 }, 'URLSearchParams constructor, object.');
67
68 test(function() {
69 var urls = new URLSearchParams("first=second&third&&");
70 assert_true(urls != null, "constructor returned non-null value.");
71 assert_true(urls.has("first"), "Search params object has name 'first'");
72 assert_equals(urls.get("first"), "second", "Search params object has name 'f irst' with value 'second'");
73 assert_equals(urls.get("third"), "", "Search params object has name 'third' with the empty value.");
74 assert_equals(urls.get("fourth"), null, "Search params object has no 'fourth ' name and value.");
75 }, 'URLSearchParams.get');
76
77 test(function() {
78 var urls = new URLSearchParams();
79 urls.append("first", 1);
80 urls.append("second", 2);
81 urls.append("third", "");
82 urls.append("first", 10);
83 assert_true(urls.has("first"), "Search params object has name 'first'");
84 assert_equals(urls.get("first"), "1", "Search params object has name 'first' with value '1'");
85 assert_equals(urls.get("second"), "2", "Search params object has name 'secon d' with value '2'");
86 assert_equals(urls.get("third"), "", "Search params object has name 'second' with value '2'");
87 urls.append("first", 10);
88 assert_equals(urls.get("first"), "1", "Search params object has name 'first' with value '1'");
89 }, 'URLSearchParams.append');
90
91 test(function() {
92 var urls = new URLSearchParams();
93 urls.append("first", 1);
94 assert_true(urls.has("first"), "Search params object has name 'first'");
95 assert_equals(urls.get("first"), "1", "Search params object has name 'first' with value '1'");
96 urls.delete("first");
97 assert_false(urls.has("first"), "Search params object has no 'first' name");
98 urls.append("first", 1);
99 urls.append("first", 10);
100 urls.delete("first");
101 assert_false(urls.has("first"), "Search params object has no 'first' name");
102 }, 'URLSearchParams.delete');
103
104 test(function() {
105 var urls = new URLSearchParams("a=b&c=d&&");
106 urls.append("first", 1);
107 urls.append("first", 2);
108 assert_true(urls.has("a"), "Search params object has name 'a'");
109 assert_true(urls.has("c"), "Search params object has name 'c'");
110 assert_true(urls.has("first"), "Search params object has name 'first'");
111 assert_false(urls.has("d"), "Search params object has no name 'd'");
112 urls.delete("first");
113 assert_false(urls.has("first"), "Search params object has no name 'first'");
114 }, 'URLSearchParams.has');
115
116 test(function() {
117 var urls = new URLSearchParams("a=1&a=2&a=3");
118 assert_true(urls.has("a"), "Search params object has name 'a'");
119 assert_equals(urls.get("a"), "1", "Search params object has name 'a' with va lue '1'");
120 urls.set("first", 4);
121 assert_true(urls.has("a"), "Search params object has name 'a'");
122 assert_equals(urls.get("a"), "1", "Search params object has name 'a' with va lue '1'");
123 urls.set("a", 4);
124 assert_true(urls.has("a"), "Search params object has name 'a'");
125 assert_equals(urls.get("a"), "4", "Search params object has name 'a' with va lue '4'");
126 }, 'URLSearchParams.set');
127
128 test(function() {
129 var urls = new URLSearchParams("a=1&a=2&a=3&a");
130 assert_true(urls.has("a"), "Search params object has name 'a'");
131 var matches = urls.getAll("a");
132 assert_true(matches && matches.length == 4, "Search params object has values for name 'a'");
133 assert_array_equals(matches, ["1", "2", "3", ""], "Search params object has expected name 'a' values");
134 urls.set("a", "one");
135 assert_equals(urls.get("a"), "one", "Search params object has name 'a' with value 'one'");
136 var matches = urls.getAll("a");
137 assert_true(matches && matches.length == 1, "Search params object has values for name 'a'");
138 assert_array_equals(matches, ["one"], "Search params object has expected nam e 'a' values");
139 }, 'URLSearchParams.getAll');
140
141 test(function() {
142 var urls;
143 urls = new URLSearchParams("a=b&c=d&&e&&");
144 assert_equals(urls.toString(), "a=b&c=d&e");
145
146 urls = new URLSearchParams("a = b &a=b&c=d%20");
147 assert_equals(urls.toString(), "a+=+b+&a=b&c=d+");
148
149 // The lone '=' does not survive the roundtrip.
150 urls = new URLSearchParams("a=&a=b");
151 assert_equals(urls.toString(), "a&a=b");
152 }, 'URLSearchParams.toString');
153
154 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698