-
Notifications
You must be signed in to change notification settings - Fork 2
/
testers.json
196 lines (196 loc) · 71.6 KB
/
testers.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
{
"console›console-is-a-namespace.any.js›console exists on the global object": "() => {\n assert_true(self.hasOwnProperty(\"console\"));\n}",
"console›console-is-a-namespace.any.js›console has the right property descriptors": "() => {\n const propDesc = Object.getOwnPropertyDescriptor(self, \"console\");\n assert_equals(propDesc.writable, true, \"must be writable\");\n assert_equals(propDesc.enumerable, false, \"must not be enumerable\");\n assert_equals(propDesc.configurable, true, \"must be configurable\");\n assert_equals(propDesc.value, console, \"must have the right value\");\n}",
"console›console-is-a-namespace.any.js›Console (uppercase, as if it were an interface) must not exist": "() => {\n assert_false(\"Console\" in self);\n}",
"console›console-is-a-namespace.any.js›The prototype chain must be correct": "() => {\n const prototype1 = Object.getPrototypeOf(console);\n const prototype2 = Object.getPrototypeOf(prototype1);\n\n assert_equals(Object.getOwnPropertyNames(prototype1).length, 0, \"The [[Prototype]] must have no properties\");\n assert_equals(prototype2, Object.prototype, \"The [[Prototype]]'s [[Prototype]] must be %ObjectPrototype%\");\n}",
"console›console-label-conversion.any.js›console.count()'s label gets converted to string via label.toString() when label is an object": "() => {\n let labelToStringCalled = false;\n\n console[method]({\n toString() {\n labelToStringCalled = true;\n }\n });\n\n assert_true(labelToStringCalled, `${method}() must call toString() on label when label is an object`);\n }",
"console›console-label-conversion.any.js›console.count() throws exceptions generated by erroneous label.toString() conversion": "() => {\n assert_throws({name: 'Error'}, () => {\n console[method]({\n toString() {\n throw new Error('conversion error');\n }\n });\n }, `${method} must re-throw any exceptions thrown by label.toString() conversion`);\n }",
"console›console-label-conversion.any.js›console.countReset()'s label gets converted to string via label.toString() when label is an object": "() => {\n let labelToStringCalled = false;\n\n console[method]({\n toString() {\n labelToStringCalled = true;\n }\n });\n\n assert_true(labelToStringCalled, `${method}() must call toString() on label when label is an object`);\n }",
"console›console-label-conversion.any.js›console.countReset() throws exceptions generated by erroneous label.toString() conversion": "() => {\n assert_throws({name: 'Error'}, () => {\n console[method]({\n toString() {\n throw new Error('conversion error');\n }\n });\n }, `${method} must re-throw any exceptions thrown by label.toString() conversion`);\n }",
"console›console-label-conversion.any.js›console.time()'s label gets converted to string via label.toString() when label is an object": "() => {\n let labelToStringCalled = false;\n\n console[method]({\n toString() {\n labelToStringCalled = true;\n }\n });\n\n assert_true(labelToStringCalled, `${method}() must call toString() on label when label is an object`);\n }",
"console›console-label-conversion.any.js›console.time() throws exceptions generated by erroneous label.toString() conversion": "() => {\n assert_throws({name: 'Error'}, () => {\n console[method]({\n toString() {\n throw new Error('conversion error');\n }\n });\n }, `${method} must re-throw any exceptions thrown by label.toString() conversion`);\n }",
"console›console-label-conversion.any.js›console.timeLog()'s label gets converted to string via label.toString() when label is an object": "() => {\n let labelToStringCalled = false;\n\n console[method]({\n toString() {\n labelToStringCalled = true;\n }\n });\n\n assert_true(labelToStringCalled, `${method}() must call toString() on label when label is an object`);\n }",
"console›console-label-conversion.any.js›console.timeLog() throws exceptions generated by erroneous label.toString() conversion": "() => {\n assert_throws({name: 'Error'}, () => {\n console[method]({\n toString() {\n throw new Error('conversion error');\n }\n });\n }, `${method} must re-throw any exceptions thrown by label.toString() conversion`);\n }",
"console›console-label-conversion.any.js›console.timeEnd()'s label gets converted to string via label.toString() when label is an object": "() => {\n let labelToStringCalled = false;\n\n console[method]({\n toString() {\n labelToStringCalled = true;\n }\n });\n\n assert_true(labelToStringCalled, `${method}() must call toString() on label when label is an object`);\n }",
"console›console-label-conversion.any.js›console.timeEnd() throws exceptions generated by erroneous label.toString() conversion": "() => {\n assert_throws({name: 'Error'}, () => {\n console[method]({\n toString() {\n throw new Error('conversion error');\n }\n });\n }, `${method} must re-throw any exceptions thrown by label.toString() conversion`);\n }",
"console›console-tests-historical.any.js›'timeline' function should not exist on the console object": "() => {\n assert_equals(console.timeline, undefined, \"console.timeline should be undefined\");\n}",
"console›console-tests-historical.any.js›'timelineEnd' function should not exist on the console object": "() => {\n assert_equals(console.timelineEnd, undefined, \"console.timelineEnd should be undefined\");\n}",
"console›console-tests-historical.any.js›'markTimeline' function should not exist on the console object": "() => {\n assert_equals(console.markTimeline, undefined, \"console.markTimeline should be undefined\");\n}",
"hr-time›basic.any.js›self.performance.now() is a function that returns a number": "function() {\n assert_true((self.performance !== undefined), \"self.performance exists\");\n assert_equals(typeof self.performance, \"object\", \"self.performance is an object\");\n assert_equals((typeof self.performance.now), \"function\", \"self.performance.now() is a function\");\n assert_equals(typeof self.performance.now(), \"number\", \"self.performance.now() returns a number\");\n}",
"hr-time›basic.any.js›self.performance.now() returns a positive number": "function() {\n assert_true(self.performance.now() > 0);\n}",
"hr-time›basic.any.js›self.performance.now() difference is not negative": "function() {\n var now1 = self.performance.now();\n var now2 = self.performance.now();\n assert_true((now2-now1) >= 0);\n}",
"hr-time›basic.any.js›High resolution time has approximately the right relative magnitude": "async function() {\n // Check whether the performance.now() method is close to Date() within 30ms (due to inaccuracies)\n var initial_hrt = self.performance.now();\n var initial_date = Date.now();\n await new Promise((resove) => {\n setTimeout(() => {\n var final_hrt = self.performance.now();\n var final_date = Date.now();\n assert_approx_equals(final_hrt - initial_hrt, final_date - initial_date, 30, 'High resolution time value increased by approximately the same amount as time from date object');\n resove();\n }, 2000);\n });\n}",
"hr-time›monotonic-clock.any.js›self.performance.now() returns a positive number": "function() {\n assert_true(self.performance.now() > 0, \"self.performance.now() returns positive numbers\");\n}",
"hr-time›monotonic-clock.any.js›self.performance.now() difference is not negative": "function() {\n var now1 = self.performance.now();\n var now2 = self.performance.now();\n assert_true((now2-now1) >= 0, \"self.performance.now() difference is not negative\");\n }",
"url›url-searchparams.any.js›URL.searchParams getter": "function() {\n var url = bURL('http://example.org/?a=b')\n assert_true(\"searchParams\" in url)\n var searchParams = url.searchParams\n assert_true(url.searchParams === searchParams, 'Object identity should hold.')\n }",
"url›url-searchparams.any.js›URL.searchParams updating, clearing": "function() {\n var url = bURL('http://example.org/?a=b')\n assert_true(\"searchParams\" in url)\n var searchParams = url.searchParams\n assert_equals(searchParams.toString(), 'a=b')\n\n searchParams.set('a', 'b')\n assert_equals(url.searchParams.toString(), 'a=b')\n assert_equals(url.search, '?a=b')\n url.search = ''\n assert_equals(url.searchParams.toString(), '')\n assert_equals(url.search, '')\n assert_equals(searchParams.toString(), '')\n }",
"url›url-searchparams.any.js›URL.searchParams setter, invalid values": "function() {\n 'use strict'\n var urlString = 'http://example.org'\n var url = bURL(urlString)\n assert_throws(TypeError(), function() { url.searchParams = new URLSearchParams(urlString) })\n }",
"url›url-searchparams.any.js›URL.searchParams and URL.search setters, update propagation": "function() {\n var url = bURL('http://example.org/file?a=b&c=d')\n assert_true(\"searchParams\" in url)\n var searchParams = url.searchParams\n assert_equals(url.search, '?a=b&c=d')\n assert_equals(searchParams.toString(), 'a=b&c=d')\n\n // Test that setting 'search' propagates to the URL object's query object.\n url.search = 'e=f&g=h'\n assert_equals(url.search, '?e=f&g=h')\n assert_equals(searchParams.toString(), 'e=f&g=h')\n\n // ..and same but with a leading '?'.\n url.search = '?e=f&g=h'\n assert_equals(url.search, '?e=f&g=h')\n assert_equals(searchParams.toString(), 'e=f&g=h')\n\n // And in the other direction, altering searchParams propagates\n // back to 'search'.\n searchParams.append('i', ' j ')\n assert_equals(url.search, '?e=f&g=h&i=+j+')\n assert_equals(url.searchParams.toString(), 'e=f&g=h&i=+j+')\n assert_equals(searchParams.get('i'), ' j ')\n\n searchParams.set('e', 'updated')\n assert_equals(url.search, '?e=updated&g=h&i=+j+')\n assert_equals(searchParams.get('e'), 'updated')\n\n var url2 = bURL('http://example.org/file??a=b&c=d')\n assert_equals(url2.search, '??a=b&c=d')\n assert_equals(url2.searchParams.toString(), '%3Fa=b&c=d')\n\n url2.href = 'http://example.org/file??a=b'\n assert_equals(url2.search, '??a=b')\n assert_equals(url2.searchParams.toString(), '%3Fa=b')\n }",
"url›url-tojson.any.js›": "() => {\n const a = new URL(\"https://example.com/\")\n assert_equals(JSON.stringify(a), \"\\\"https://example.com/\\\"\")\n}",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: test": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: test": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: test": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: test=": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: test=": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: test=": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %EF%BB%BFtest=%EF%BB%BF": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %EF%BB%BFtest=%EF%BB%BF": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %EF%BB%BFtest=%EF%BB%BF": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %FE%FF": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %FE%FF": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %FE%FF": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %FF%FE": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %FF%FE": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %FF%FE": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: †&†=x": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: †&†=x": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: †&†=x": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %C2": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %C2": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %C2": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %C2x": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %C2x": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %C2x": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: _charset_=windows-1252&test=%C2x": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: _charset_=windows-1252&test=%C2x": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: _charset_=windows-1252&test=%C2x": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: ": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: ": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: ": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a=b": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a=b": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a=b": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a=": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a=": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a=": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: =b": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: =b": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: =b": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: &": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: &": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: &": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: &a": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: &a": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: &a": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a&": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a&": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a&": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a&a": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a&a": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a&a": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a&b&c": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a&b&c": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a&b&c": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a=b&c=d": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a=b&c=d": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a=b&c=d": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a=b&c=d&": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a=b&c=d&": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a=b&c=d&": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: &&&a=b&&&&c=d&": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: &&&a=b&&&&c=d&": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: &&&a=b&&&&c=d&": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a=a&a=b&a=c": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a=a&a=b&a=c": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a=a&a=b&a=c": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a==a": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a==a": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a==a": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: a=a+b+c+d": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: a=a+b+c+d": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: a=a+b+c+d": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %=a": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %=a": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %=a": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %a=a": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %a=a": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %a=a": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %a_=a": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %a_=a": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %a_=a": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %61=a": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %61=a": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %61=a": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›URLSearchParams constructed with: %61+%4d%4D=": "() => {\n let sp = new URLSearchParams(val.input),\n i = 0\n for (let item of sp) {\n assert_array_equals(item, val.output[i])\n i++\n }\n }",
"url›urlencoded-parser.any.js›request.formData() with input: %61+%4d%4D=": "() => {\n let init = new Request(\"about:blank\", { body: val.input, method: \"LADIDA\", headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=windows-1252\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlencoded-parser.any.js›response.formData() with input: %61+%4d%4D=": "() => {\n let init = new Response(val.input, { headers: {\"Content-Type\": \"application/x-www-form-urlencoded;charset=shift_jis\"} }).formData()\n return init.then((fd) => {\n let i = 0\n for (let item of fd) {\n assert_array_equals(item, val.output[i])\n i++\n }\n })\n }",
"url›urlsearchparams-append.any.js›Append same name": "function() {\n var params = new URLSearchParams();\n params.append('a', 'b');\n assert_equals(params + '', 'a=b');\n params.append('a', 'b');\n assert_equals(params + '', 'a=b&a=b');\n params.append('a', 'c');\n assert_equals(params + '', 'a=b&a=b&a=c');\n}",
"url›urlsearchparams-append.any.js›Append empty strings": "function() {\n var params = new URLSearchParams();\n params.append('', '');\n assert_equals(params + '', '=');\n params.append('', '');\n assert_equals(params + '', '=&=');\n}",
"url›urlsearchparams-append.any.js›Append null": "function() {\n var params = new URLSearchParams();\n params.append(null, null);\n assert_equals(params + '', 'null=null');\n params.append(null, null);\n assert_equals(params + '', 'null=null&null=null');\n}",
"url›urlsearchparams-append.any.js›Append multiple": "function() {\n var params = new URLSearchParams();\n params.append('first', 1);\n params.append('second', 2);\n params.append('third', '');\n params.append('first', 10);\n assert_true(params.has('first'), 'Search params object has name \"first\"');\n assert_equals(params.get('first'), '1', 'Search params object has name \"first\" with value \"1\"');\n assert_equals(params.get('second'), '2', 'Search params object has name \"second\" with value \"2\"');\n assert_equals(params.get('third'), '', 'Search params object has name \"third\" with value \"\"');\n params.append('first', 10);\n assert_equals(params.get('first'), '1', 'Search params object has name \"first\" with value \"1\"');\n}",
"url›urlsearchparams-constructor.any.js›Basic URLSearchParams construction": "function() {\n var params = new URLSearchParams();\n assert_equals(params + '', '');\n params = new URLSearchParams('');\n assert_equals(params + '', '');\n params = new URLSearchParams('a=b');\n assert_equals(params + '', 'a=b');\n params = new URLSearchParams(params);\n assert_equals(params + '', 'a=b');\n}",
"url›urlsearchparams-constructor.any.js›URLSearchParams constructor, no arguments": "function() {\n var params = new URLSearchParams()\n assert_equals(params.toString(), \"\")\n}",
"url›urlsearchparams-constructor.any.js›URLSearchParams constructor, remove leading \"?\"": "function () {\n var params = new URLSearchParams(\"?a=b\")\n assert_equals(params.toString(), \"a=b\")\n}",
"url›urlsearchparams-constructor.any.js›URLSearchParams constructor, DOMException as argument": "() => {\n var params = new URLSearchParams(DOMException);\n assert_equals(params.toString(), \"INDEX_SIZE_ERR=1&DOMSTRING_SIZE_ERR=2&HIERARCHY_REQUEST_ERR=3&WRONG_DOCUMENT_ERR=4&INVALID_CHARACTER_ERR=5&NO_DATA_ALLOWED_ERR=6&NO_MODIFICATION_ALLOWED_ERR=7&NOT_FOUND_ERR=8&NOT_SUPPORTED_ERR=9&INUSE_ATTRIBUTE_ERR=10&INVALID_STATE_ERR=11&SYNTAX_ERR=12&INVALID_MODIFICATION_ERR=13&NAMESPACE_ERR=14&INVALID_ACCESS_ERR=15&VALIDATION_ERR=16&TYPE_MISMATCH_ERR=17&SECURITY_ERR=18&NETWORK_ERR=19&ABORT_ERR=20&URL_MISMATCH_ERR=21"A_EXCEEDED_ERR=22&TIMEOUT_ERR=23&INVALID_NODE_TYPE_ERR=24&DATA_CLONE_ERR=25\")\n assert_throws(new TypeError(), () => new URLSearchParams(DOMException.prototype),\n \"Constructing a URLSearchParams from DOMException.prototype should throw due to branding checks\");\n}",
"url›urlsearchparams-constructor.any.js›URLSearchParams constructor, empty string as argument": "() => {\n var params = new URLSearchParams('');\n assert_true(params != null, 'constructor returned non-null value.');\n assert_equals(params.__proto__, URLSearchParams.prototype, 'expected URLSearchParams.prototype as prototype.');\n}",
"url›urlsearchparams-constructor.any.js›URLSearchParams constructor, {} as argument": "() => {\n var params = new URLSearchParams({});\n assert_equals(params + '', \"\");\n}",
"url›urlsearchparams-constructor.any.js›URLSearchParams constructor, string.": "function() {\n var params = new URLSearchParams('a=b');\n assert_true(params != null, 'constructor returned non-null value.');\n assert_true(params.has('a'), 'Search params object has name \"a\"');\n assert_false(params.has('b'), 'Search params object has not got name \"b\"');\n\n params = new URLSearchParams('a=b&c');\n assert_true(params != null, 'constructor returned non-null value.');\n assert_true(params.has('a'), 'Search params object has name \"a\"');\n assert_true(params.has('c'), 'Search params object has name \"c\"');\n\n params = new URLSearchParams('&a&&& &&&&&a+b=& c&m%c3%b8%c3%b8');\n assert_true(params != null, 'constructor returned non-null value.');\n assert_true(params.has('a'), 'Search params object has name \"a\"');\n assert_true(params.has('a b'), 'Search params object has name \"a b\"');\n assert_true(params.has(' '), 'Search params object has name \" \"');\n assert_false(params.has('c'), 'Search params object did not have the name \"c\"');\n assert_true(params.has(' c'), 'Search params object has name \" c\"');\n assert_true(params.has('møø'), 'Search params object has name \"møø\"');\n}",
"url›urlsearchparams-constructor.any.js›URLSearchParams constructor, object.": "function() {\n var seed = new URLSearchParams('a=b&c=d');\n var params = new URLSearchParams(seed);\n assert_true(params != null, 'constructor returned non-null value.');\n assert_equals(params.get('a'), 'b');\n assert_equals(params.get('c'), 'd');\n assert_false(params.has('d'));\n // The name-value pairs are copied when created; later updates\n // should not be observable.\n seed.append('e', 'f');\n assert_false(params.has('e'));\n params.append('g', 'h');\n assert_false(seed.has('g'));\n}",
"url›urlsearchparams-constructor.any.js›Parse +": "function() {\n var params = new URLSearchParams('a=b+c');\n assert_equals(params.get('a'), 'b c');\n params = new URLSearchParams('a+b=c');\n assert_equals(params.get('a b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Parse encoded +": "function() {\n const testValue = '+15555555555';\n const params = new URLSearchParams();\n params.set('query', testValue);\n var newParams = new URLSearchParams(params.toString());\n\n assert_equals(params.toString(), 'query=%2B15555555555');\n assert_equals(params.get('query'), testValue);\n assert_equals(newParams.get('query'), testValue);\n}",
"url›urlsearchparams-constructor.any.js›Parse space": "function() {\n var params = new URLSearchParams('a=b c');\n assert_equals(params.get('a'), 'b c');\n params = new URLSearchParams('a b=c');\n assert_equals(params.get('a b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Parse %20": "function() {\n var params = new URLSearchParams('a=b%20c');\n assert_equals(params.get('a'), 'b c');\n params = new URLSearchParams('a%20b=c');\n assert_equals(params.get('a b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Parse \\0": "function() {\n var params = new URLSearchParams('a=b\\0c');\n assert_equals(params.get('a'), 'b\\0c');\n params = new URLSearchParams('a\\0b=c');\n assert_equals(params.get('a\\0b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Parse %00": "function() {\n var params = new URLSearchParams('a=b%00c');\n assert_equals(params.get('a'), 'b\\0c');\n params = new URLSearchParams('a%00b=c');\n assert_equals(params.get('a\\0b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Parse ⎄": "function() {\n var params = new URLSearchParams('a=b\\u2384');\n assert_equals(params.get('a'), 'b\\u2384');\n params = new URLSearchParams('a\\u2384b=c');\n assert_equals(params.get('a\\u2384b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Parse %e2%8e%84": "function() {\n var params = new URLSearchParams('a=b%e2%8e%84');\n assert_equals(params.get('a'), 'b\\u2384');\n params = new URLSearchParams('a%e2%8e%84b=c');\n assert_equals(params.get('a\\u2384b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Parse 💩": "function() {\n var params = new URLSearchParams('a=b\\uD83D\\uDCA9c');\n assert_equals(params.get('a'), 'b\\uD83D\\uDCA9c');\n params = new URLSearchParams('a\\uD83D\\uDCA9b=c');\n assert_equals(params.get('a\\uD83D\\uDCA9b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Parse %f0%9f%92%a9": "function() {\n var params = new URLSearchParams('a=b%f0%9f%92%a9c');\n assert_equals(params.get('a'), 'b\\uD83D\\uDCA9c');\n params = new URLSearchParams('a%f0%9f%92%a9b=c');\n assert_equals(params.get('a\\uD83D\\uDCA9b'), 'c');\n}",
"url›urlsearchparams-constructor.any.js›Constructor with sequence of sequences of strings": "function() {\n var params = new URLSearchParams([]);\n assert_true(params != null, 'constructor returned non-null value.');\n params = new URLSearchParams([['a', 'b'], ['c', 'd']]);\n assert_equals(params.get(\"a\"), \"b\");\n assert_equals(params.get(\"c\"), \"d\");\n assert_throws(new TypeError(), function() { new URLSearchParams([[1]]); });\n assert_throws(new TypeError(), function() { new URLSearchParams([[1,2,3]]); });\n}",
"url›urlsearchparams-constructor.any.js›Construct with object with +": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n for (let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-constructor.any.js›Construct with object with two keys": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n for (let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-constructor.any.js›Construct with array with two keys": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n for (let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-constructor.any.js›Construct with object with NULL, non-ASCII, and surrogate keys": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n for (let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-constructor.any.js›Custom [Symbol.iterator]": "() => {\n var params = new URLSearchParams()\n params[Symbol.iterator] = function *() {\n yield [\"a\", \"b\"]\n }\n let params2 = new URLSearchParams(params)\n assert_equals(params2.get(\"a\"), \"b\")\n}",
"url›urlsearchparams-delete.any.js›Delete basics": "function() {\n var params = new URLSearchParams('a=b&c=d');\n params.delete('a');\n assert_equals(params + '', 'c=d');\n params = new URLSearchParams('a=a&b=b&a=a&c=c');\n params.delete('a');\n assert_equals(params + '', 'b=b&c=c');\n params = new URLSearchParams('a=a&=&b=b&c=c');\n params.delete('');\n assert_equals(params + '', 'a=a&b=b&c=c');\n params = new URLSearchParams('a=a&null=null&b=b');\n params.delete(null);\n assert_equals(params + '', 'a=a&b=b');\n params = new URLSearchParams('a=a&undefined=undefined&b=b');\n params.delete(undefined);\n assert_equals(params + '', 'a=a&b=b');\n}",
"url›urlsearchparams-delete.any.js›Deleting appended multiple": "function() {\n var params = new URLSearchParams();\n params.append('first', 1);\n assert_true(params.has('first'), 'Search params object has name \"first\"');\n assert_equals(params.get('first'), '1', 'Search params object has name \"first\" with value \"1\"');\n params.delete('first');\n assert_false(params.has('first'), 'Search params object has no \"first\" name');\n params.append('first', 1);\n params.append('first', 10);\n params.delete('first');\n assert_false(params.has('first'), 'Search params object has no \"first\" name');\n}",
"url›urlsearchparams-delete.any.js›Deleting all params removes ? from URL": "function() {\n var url = new URL('http://example.com/?param1¶m2');\n url.searchParams.delete('param1');\n url.searchParams.delete('param2');\n assert_equals(url.href, 'http://example.com/', 'url.href does not have ?');\n assert_equals(url.search, '', 'url.search does not have ?');\n}",
"url›urlsearchparams-delete.any.js›Removing non-existent param removes ? from URL": "function() {\n var url = new URL('http://example.com/?');\n url.searchParams.delete('param1');\n assert_equals(url.href, 'http://example.com/', 'url.href does not have ?');\n assert_equals(url.search, '', 'url.search does not have ?');\n}",
"url›urlsearchparams-foreach.any.js›ForEach Check": "function() {\n var params = new URLSearchParams('a=1&b=2&c=3');\n var keys = [];\n var values = [];\n params.forEach(function(value, key) {\n keys.push(key);\n values.push(value);\n });\n assert_array_equals(keys, ['a', 'b', 'c']);\n assert_array_equals(values, ['1', '2', '3']);\n}",
"url›urlsearchparams-foreach.any.js›For-of Check": "function() {\n let a = new URL(\"http://a.b/c?a=1&b=2&c=3&d=4\");\n let b = a.searchParams;\n var c = [];\n for (i of b) {\n a.search = \"x=1&y=2&z=3\";\n c.push(i);\n }\n assert_array_equals(c[0], [\"a\",\"1\"]);\n assert_array_equals(c[1], [\"y\",\"2\"]);\n assert_array_equals(c[2], [\"z\",\"3\"]);\n}",
"url›urlsearchparams-foreach.any.js›empty": "function() {\n let a = new URL(\"http://a.b/c\");\n let b = a.searchParams;\n for (i of b) {\n assert_unreached(i);\n }\n}",
"url›urlsearchparams-foreach.any.js›delete next param during iteration": "function() {\n const url = new URL(\"http://localhost/query?param0=0¶m1=1¶m2=2\");\n const searchParams = url.searchParams;\n const seen = [];\n for (param of searchParams) {\n if (param[0] === 'param0') {\n searchParams.delete('param1');\n }\n seen.push(param);\n }\n\n assert_array_equals(seen[0], [\"param0\", \"0\"]);\n assert_array_equals(seen[1], [\"param2\", \"2\"]);\n}",
"url›urlsearchparams-foreach.any.js›delete current param during iteration": "function() {\n const url = new URL(\"http://localhost/query?param0=0¶m1=1¶m2=2\");\n const searchParams = url.searchParams;\n const seen = [];\n for (param of searchParams) {\n if (param[0] === 'param0') {\n searchParams.delete('param0');\n // 'param1=1' is now in the first slot, so the next iteration will see 'param2=2'.\n } else {\n seen.push(param);\n }\n }\n\n assert_array_equals(seen[0], [\"param2\", \"2\"]);\n}",
"url›urlsearchparams-foreach.any.js›delete every param seen during iteration": "function() {\n const url = new URL(\"http://localhost/query?param0=0¶m1=1¶m2=2\");\n const searchParams = url.searchParams;\n const seen = [];\n for (param of searchParams) {\n seen.push(param[0]);\n searchParams.delete(param[0]);\n }\n\n assert_array_equals(seen, [\"param0\", \"param2\"], \"param1 should not have been seen by the loop\");\n assert_equals(String(searchParams), \"param1=1\", \"param1 should remain\");\n}",
"url›urlsearchparams-get.any.js›Get basics": "function() {\n var params = new URLSearchParams('a=b&c=d');\n assert_equals(params.get('a'), 'b');\n assert_equals(params.get('c'), 'd');\n assert_equals(params.get('e'), null);\n params = new URLSearchParams('a=b&c=d&a=e');\n assert_equals(params.get('a'), 'b');\n params = new URLSearchParams('=b&c=d');\n assert_equals(params.get(''), 'b');\n params = new URLSearchParams('a=&c=d&a=e');\n assert_equals(params.get('a'), '');\n}",
"url›urlsearchparams-get.any.js›More get() basics": "function() {\n var params = new URLSearchParams('first=second&third&&');\n assert_true(params != null, 'constructor returned non-null value.');\n assert_true(params.has('first'), 'Search params object has name \"first\"');\n assert_equals(params.get('first'), 'second', 'Search params object has name \"first\" with value \"second\"');\n assert_equals(params.get('third'), '', 'Search params object has name \"third\" with the empty value.');\n assert_equals(params.get('fourth'), null, 'Search params object has no \"fourth\" name and value.');\n}",
"url›urlsearchparams-getall.any.js›getAll() basics": "function() {\n var params = new URLSearchParams('a=b&c=d');\n assert_array_equals(params.getAll('a'), ['b']);\n assert_array_equals(params.getAll('c'), ['d']);\n assert_array_equals(params.getAll('e'), []);\n params = new URLSearchParams('a=b&c=d&a=e');\n assert_array_equals(params.getAll('a'), ['b', 'e']);\n params = new URLSearchParams('=b&c=d');\n assert_array_equals(params.getAll(''), ['b']);\n params = new URLSearchParams('a=&c=d&a=e');\n assert_array_equals(params.getAll('a'), ['', 'e']);\n}",
"url›urlsearchparams-getall.any.js›getAll() multiples": "function() {\n var params = new URLSearchParams('a=1&a=2&a=3&a');\n assert_true(params.has('a'), 'Search params object has name \"a\"');\n var matches = params.getAll('a');\n assert_true(matches && matches.length == 4, 'Search params object has values for name \"a\"');\n assert_array_equals(matches, ['1', '2', '3', ''], 'Search params object has expected name \"a\" values');\n params.set('a', 'one');\n assert_equals(params.get('a'), 'one', 'Search params object has name \"a\" with value \"one\"');\n var matches = params.getAll('a');\n assert_true(matches && matches.length == 1, 'Search params object has values for name \"a\"');\n assert_array_equals(matches, ['one'], 'Search params object has expected name \"a\" values');\n}",
"url›urlsearchparams-has.any.js›Has basics": "function() {\n var params = new URLSearchParams('a=b&c=d');\n assert_true(params.has('a'));\n assert_true(params.has('c'));\n assert_false(params.has('e'));\n params = new URLSearchParams('a=b&c=d&a=e');\n assert_true(params.has('a'));\n params = new URLSearchParams('=b&c=d');\n assert_true(params.has(''));\n params = new URLSearchParams('null=a');\n assert_true(params.has(null));\n}",
"url›urlsearchparams-has.any.js›has() following delete()": "function() {\n var params = new URLSearchParams('a=b&c=d&&');\n params.append('first', 1);\n params.append('first', 2);\n assert_true(params.has('a'), 'Search params object has name \"a\"');\n assert_true(params.has('c'), 'Search params object has name \"c\"');\n assert_true(params.has('first'), 'Search params object has name \"first\"');\n assert_false(params.has('d'), 'Search params object has no name \"d\"');\n params.delete('first');\n assert_false(params.has('first'), 'Search params object has no name \"first\"');\n}",
"url›urlsearchparams-set.any.js›Set basics": "function() {\n var params = new URLSearchParams('a=b&c=d');\n params.set('a', 'B');\n assert_equals(params + '', 'a=B&c=d');\n params = new URLSearchParams('a=b&c=d&a=e');\n params.set('a', 'B');\n assert_equals(params + '', 'a=B&c=d')\n params.set('e', 'f');\n assert_equals(params + '', 'a=B&c=d&e=f')\n}",
"url›urlsearchparams-set.any.js›URLSearchParams.set": "function() {\n var params = new URLSearchParams('a=1&a=2&a=3');\n assert_true(params.has('a'), 'Search params object has name \"a\"');\n assert_equals(params.get('a'), '1', 'Search params object has name \"a\" with value \"1\"');\n params.set('first', 4);\n assert_true(params.has('a'), 'Search params object has name \"a\"');\n assert_equals(params.get('a'), '1', 'Search params object has name \"a\" with value \"1\"');\n params.set('a', 4);\n assert_true(params.has('a'), 'Search params object has name \"a\"');\n assert_equals(params.get('a'), '4', 'Search params object has name \"a\" with value \"4\"');\n}",
"url›urlsearchparams-sort.any.js›Parse and sort: z=b&a=b&z=a&a=a": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n params.sort()\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›URL parse and sort: z=b&a=b&z=a&a=a": "() => {\n let url = new URL(\"?\" + val.input, \"https://example/\")\n url.searchParams.sort()\n let params = new URLSearchParams(url.search),\n i = 0\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›Parse and sort: �=x&&�=a": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n params.sort()\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›URL parse and sort: �=x&&�=a": "() => {\n let url = new URL(\"?\" + val.input, \"https://example/\")\n url.searchParams.sort()\n let params = new URLSearchParams(url.search),\n i = 0\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›Parse and sort: ffi&🌈": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n params.sort()\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›URL parse and sort: ffi&🌈": "() => {\n let url = new URL(\"?\" + val.input, \"https://example/\")\n url.searchParams.sort()\n let params = new URLSearchParams(url.search),\n i = 0\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›Parse and sort: é&e�&é": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n params.sort()\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›URL parse and sort: é&e�&é": "() => {\n let url = new URL(\"?\" + val.input, \"https://example/\")\n url.searchParams.sort()\n let params = new URLSearchParams(url.search),\n i = 0\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›Parse and sort: z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n params.sort()\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›URL parse and sort: z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g": "() => {\n let url = new URL(\"?\" + val.input, \"https://example/\")\n url.searchParams.sort()\n let params = new URLSearchParams(url.search),\n i = 0\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›Parse and sort: bbb&bb&aaa&aa=x&aa=y": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n params.sort()\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›URL parse and sort: bbb&bb&aaa&aa=x&aa=y": "() => {\n let url = new URL(\"?\" + val.input, \"https://example/\")\n url.searchParams.sort()\n let params = new URLSearchParams(url.search),\n i = 0\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›Parse and sort: z=z&=f&=t&=x": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n params.sort()\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›URL parse and sort: z=z&=f&=t&=x": "() => {\n let url = new URL(\"?\" + val.input, \"https://example/\")\n url.searchParams.sort()\n let params = new URLSearchParams(url.search),\n i = 0\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›Parse and sort: a🌈&a💩": "() => {\n let params = new URLSearchParams(val.input),\n i = 0\n params.sort()\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›URL parse and sort: a🌈&a💩": "() => {\n let url = new URL(\"?\" + val.input, \"https://example/\")\n url.searchParams.sort()\n let params = new URLSearchParams(url.search),\n i = 0\n for(let param of params) {\n assert_array_equals(param, val.output[i])\n i++\n }\n }",
"url›urlsearchparams-sort.any.js›Sorting non-existent params removes ? from URL": "function() {\n const url = new URL(\"http://example.com/?\")\n url.searchParams.sort()\n assert_equals(url.href, \"http://example.com/\")\n assert_equals(url.search, \"\")\n}",
"url›urlsearchparams-stringifier.any.js›Serialize space": "function() {\n var params = new URLSearchParams();\n params.append('a', 'b c');\n assert_equals(params + '', 'a=b+c');\n params.delete('a');\n params.append('a b', 'c');\n assert_equals(params + '', 'a+b=c');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize empty value": "function() {\n var params = new URLSearchParams();\n params.append('a', '');\n assert_equals(params + '', 'a=');\n params.append('a', '');\n assert_equals(params + '', 'a=&a=');\n params.append('', 'b');\n assert_equals(params + '', 'a=&a=&=b');\n params.append('', '');\n assert_equals(params + '', 'a=&a=&=b&=');\n params.append('', '');\n assert_equals(params + '', 'a=&a=&=b&=&=');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize empty name": "function() {\n var params = new URLSearchParams();\n params.append('', 'b');\n assert_equals(params + '', '=b');\n params.append('', 'b');\n assert_equals(params + '', '=b&=b');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize empty name and value": "function() {\n var params = new URLSearchParams();\n params.append('', '');\n assert_equals(params + '', '=');\n params.append('', '');\n assert_equals(params + '', '=&=');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize +": "function() {\n var params = new URLSearchParams();\n params.append('a', 'b+c');\n assert_equals(params + '', 'a=b%2Bc');\n params.delete('a');\n params.append('a+b', 'c');\n assert_equals(params + '', 'a%2Bb=c');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize =": "function() {\n var params = new URLSearchParams();\n params.append('=', 'a');\n assert_equals(params + '', '%3D=a');\n params.append('b', '=');\n assert_equals(params + '', '%3D=a&b=%3D');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize &": "function() {\n var params = new URLSearchParams();\n params.append('&', 'a');\n assert_equals(params + '', '%26=a');\n params.append('b', '&');\n assert_equals(params + '', '%26=a&b=%26');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize *-._": "function() {\n var params = new URLSearchParams();\n params.append('a', '*-._');\n assert_equals(params + '', 'a=*-._');\n params.delete('a');\n params.append('*-._', 'c');\n assert_equals(params + '', '*-._=c');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize %": "function() {\n var params = new URLSearchParams();\n params.append('a', 'b%c');\n assert_equals(params + '', 'a=b%25c');\n params.delete('a');\n params.append('a%b', 'c');\n assert_equals(params + '', 'a%25b=c');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize \\0": "function() {\n var params = new URLSearchParams();\n params.append('a', 'b\\0c');\n assert_equals(params + '', 'a=b%00c');\n params.delete('a');\n params.append('a\\0b', 'c');\n assert_equals(params + '', 'a%00b=c');\n}",
"url›urlsearchparams-stringifier.any.js›Serialize 💩": "function() {\n var params = new URLSearchParams();\n params.append('a', 'b\\uD83D\\uDCA9c');\n assert_equals(params + '', 'a=b%F0%9F%92%A9c');\n params.delete('a');\n params.append('a\\uD83D\\uDCA9b', 'c');\n assert_equals(params + '', 'a%F0%9F%92%A9b=c');\n}",
"url›urlsearchparams-stringifier.any.js›URLSearchParams.toString": "function() {\n var params;\n params = new URLSearchParams('a=b&c=d&&e&&');\n assert_equals(params.toString(), 'a=b&c=d&e=');\n params = new URLSearchParams('a = b &a=b&c=d%20');\n assert_equals(params.toString(), 'a+=+b+&a=b&c=d+');\n // The lone '=' _does_ survive the roundtrip.\n params = new URLSearchParams('a=&a=b');\n assert_equals(params.toString(), 'a=&a=b');\n}",
"url›urlsearchparams-stringifier.any.js›URLSearchParams connected to URL": "() => {\n const url = new URL('http://www.example.com/?a=b,c');\n const params = url.searchParams;\n\n assert_equals(url.toString(), 'http://www.example.com/?a=b,c');\n assert_equals(params.toString(), 'a=b%2Cc');\n\n params.append('x', 'y');\n\n assert_equals(url.toString(), 'http://www.example.com/?a=b%2Cc&x=y');\n assert_equals(params.toString(), 'a=b%2Cc&x=y');\n}"
}