@@ -4,7 +4,8 @@ const common = require('../common');
4
4
const assert = require ( 'assert' ) ;
5
5
const URLSearchParams = require ( 'url' ) . URLSearchParams ;
6
6
const {
7
- test, assert_equals, assert_true, assert_false
7
+ test, assert_equals, assert_true,
8
+ assert_false, assert_throws, assert_array_equals
8
9
} = common . WPT ;
9
10
10
11
/* eslint-disable */
@@ -40,10 +41,10 @@ test(() => {
40
41
assert_equals ( params . __proto__ , URLSearchParams . prototype , 'expected URLSearchParams.prototype as prototype.' ) ;
41
42
} , "URLSearchParams constructor, empty string as argument" )
42
43
43
- // test(() => {
44
- // params = new URLSearchParams({});
45
- // assert_equals(params + '', "");
46
- // }, 'URLSearchParams constructor, {} as argument');
44
+ test ( ( ) => {
45
+ params = new URLSearchParams ( { } ) ;
46
+ assert_equals ( params + '' , "" ) ;
47
+ } , 'URLSearchParams constructor, {} as argument' ) ;
47
48
48
49
test ( function ( ) {
49
50
var params = new URLSearchParams ( 'a=b' ) ;
@@ -142,39 +143,39 @@ test(function() {
142
143
assert_equals ( params . get ( 'a\uD83D\uDCA9b' ) , 'c' ) ;
143
144
} , 'Parse %f0%9f%92%a9' ) ; // Unicode Character 'PILE OF POO' (U+1F4A9)
144
145
145
- // test(function() {
146
- // var params = new URLSearchParams([]);
147
- // assert_true(params != null, 'constructor returned non-null value.');
148
- // params = new URLSearchParams([['a', 'b'], ['c', 'd']]);
149
- // assert_equals(params.get("a"), "b");
150
- // assert_equals(params.get("c"), "d");
151
- // assert_throws(new TypeError(), function() { new URLSearchParams([[1]]); });
152
- // assert_throws(new TypeError(), function() { new URLSearchParams([[1,2,3]]); });
153
- // }, "Constructor with sequence of sequences of strings");
154
-
155
- // [
146
+ test ( function ( ) {
147
+ var params = new URLSearchParams ( [ ] ) ;
148
+ assert_true ( params != null , 'constructor returned non-null value.' ) ;
149
+ params = new URLSearchParams ( [ [ 'a' , 'b' ] , [ 'c' , 'd' ] ] ) ;
150
+ assert_equals ( params . get ( "a" ) , "b" ) ;
151
+ assert_equals ( params . get ( "c" ) , "d" ) ;
152
+ assert_throws ( new TypeError ( ) , function ( ) { new URLSearchParams ( [ [ 1 ] ] ) ; } ) ;
153
+ assert_throws ( new TypeError ( ) , function ( ) { new URLSearchParams ( [ [ 1 , 2 , 3 ] ] ) ; } ) ;
154
+ } , "Constructor with sequence of sequences of strings" ) ;
155
+
156
+ [
156
157
// { "input": {"+": "%C2"}, "output": [[" ", "\uFFFD"]], "name": "object with +" },
157
- // { "input": {c: "x", a: "?"}, "output": [["c", "x"], ["a", "?"]], "name": "object with two keys" },
158
- // { "input": [["c", "x"], ["a", "?"]], "output": [["c", "x"], ["a", "?"]], "name": "array with two keys" }
159
- // ].forEach((val) => {
160
- // test(() => {
161
- // let params = new URLSearchParams(val.input),
162
- // i = 0
163
- // for (let param of params) {
164
- // assert_array_equals(param, val.output[i])
165
- // i++
166
- // }
167
- // }, "Construct with " + val.name)
168
- // })
158
+ { "input" : { c : "x" , a : "?" } , "output" : [ [ "c" , "x" ] , [ "a" , "?" ] ] , "name" : "object with two keys" } ,
159
+ { "input" : [ [ "c" , "x" ] , [ "a" , "?" ] ] , "output" : [ [ "c" , "x" ] , [ "a" , "?" ] ] , "name" : "array with two keys" }
160
+ ] . forEach ( ( val ) => {
161
+ test ( ( ) => {
162
+ let params = new URLSearchParams ( val . input ) ,
163
+ i = 0
164
+ for ( let param of params ) {
165
+ assert_array_equals ( param , val . output [ i ] )
166
+ i ++
167
+ }
168
+ } , "Construct with " + val . name )
169
+ } )
169
170
170
- // test(() => {
171
- // params = new URLSearchParams()
172
- // params[Symbol.iterator] = function *() {
173
- // yield ["a", "b"]
174
- // }
175
- // let params2 = new URLSearchParams(params)
176
- // assert_equals(params2.get("a"), "b")
177
- // }, "Custom [Symbol.iterator]")
171
+ test ( ( ) => {
172
+ params = new URLSearchParams ( )
173
+ params [ Symbol . iterator ] = function * ( ) {
174
+ yield [ "a" , "b" ]
175
+ }
176
+ let params2 = new URLSearchParams ( params )
177
+ assert_equals ( params2 . get ( "a" ) , "b" )
178
+ } , "Custom [Symbol.iterator]" )
178
179
/* eslint-enable */
179
180
180
181
// Tests below are not from WPT.
@@ -192,5 +193,17 @@ test(function() {
192
193
params = new URLSearchParams ( undefined ) ;
193
194
assert . strictEqual ( params . toString ( ) , '' ) ;
194
195
params = new URLSearchParams ( null ) ;
195
- assert . strictEqual ( params . toString ( ) , 'null=' ) ;
196
+ assert . strictEqual ( params . toString ( ) , '' ) ;
197
+ assert . throws ( ( ) => new URLSearchParams ( [ [ 1 ] ] ) ,
198
+ / ^ T y p e E r r o r : E a c h q u e r y p a i r m u s t b e a n a m e \/ v a l u e t u p l e $ / ) ;
199
+ assert . throws ( ( ) => new URLSearchParams ( [ [ 1 , 2 , 3 ] ] ) ,
200
+ / ^ T y p e E r r o r : E a c h q u e r y p a i r m u s t b e a n a m e \/ v a l u e t u p l e $ / ) ;
201
+ assert . throws ( ( ) => new URLSearchParams ( { [ Symbol . iterator ] : 42 } ) ,
202
+ / ^ T y p e E r r o r : Q u e r y p a i r s m u s t b e i t e r a b l e $ / ) ;
203
+ assert . throws ( ( ) => new URLSearchParams ( [ { } ] ) ,
204
+ / ^ T y p e E r r o r : E a c h q u e r y p a i r m u s t b e i t e r a b l e $ / ) ;
205
+ assert . throws ( ( ) => new URLSearchParams ( [ 'a' ] ) ,
206
+ / ^ T y p e E r r o r : E a c h q u e r y p a i r m u s t b e i t e r a b l e $ / ) ;
207
+ assert . throws ( ( ) => new URLSearchParams ( [ { [ Symbol . iterator ] : 42 } ] ) ,
208
+ / ^ T y p e E r r o r : E a c h q u e r y p a i r m u s t b e i t e r a b l e $ / ) ;
196
209
}
0 commit comments