@@ -197,7 +197,7 @@ qsWeirdObjects.forEach(function(testCase) {
197
197
// invalid surrogate pair throws URIError
198
198
assert . throws ( function ( ) {
199
199
qs . stringify ( { foo : '\udc00' } ) ;
200
- } , URIError ) ;
200
+ } , / ^ U R I E r r o r : U R I m a l f o r m e d $ / ) ;
201
201
202
202
// coerce numbers to string
203
203
assert . strictEqual ( 'foo=0' , qs . stringify ( { foo : 0 } ) ) ;
@@ -256,43 +256,47 @@ assert.strictEqual(
256
256
1 ) ;
257
257
258
258
// Test removing limit
259
- function testUnlimitedKeys ( ) {
260
- const query = { } ;
259
+ {
260
+ function testUnlimitedKeys ( ) {
261
+ const query = { } ;
261
262
262
- for ( let i = 0 ; i < 2000 ; i ++ ) query [ i ] = i ;
263
+ for ( let i = 0 ; i < 2000 ; i ++ ) query [ i ] = i ;
263
264
264
- const url = qs . stringify ( query ) ;
265
+ const url = qs . stringify ( query ) ;
265
266
266
- assert . strictEqual (
267
- Object . keys ( qs . parse ( url , null , null , { maxKeys : 0 } ) ) . length ,
267
+ assert . strictEqual (
268
+ Object . keys ( qs . parse ( url , null , null , { maxKeys : 0 } ) ) . length ,
268
269
2000 ) ;
269
- }
270
- testUnlimitedKeys ( ) ;
270
+ }
271
271
272
+ testUnlimitedKeys ( ) ;
273
+ }
272
274
273
- const b = qs . unescapeBuffer ( '%d3%f2Ug%1f6v%24%5e%98%cb' +
274
- '%0d%ac%a2%2f%9d%eb%d8%a2%e6' ) ;
275
+ {
276
+ const b = qs . unescapeBuffer ( '%d3%f2Ug%1f6v%24%5e%98%cb' +
277
+ '%0d%ac%a2%2f%9d%eb%d8%a2%e6' ) ;
275
278
// <Buffer d3 f2 55 67 1f 36 76 24 5e 98 cb 0d ac a2 2f 9d eb d8 a2 e6>
276
- assert . strictEqual ( 0xd3 , b [ 0 ] ) ;
277
- assert . strictEqual ( 0xf2 , b [ 1 ] ) ;
278
- assert . strictEqual ( 0x55 , b [ 2 ] ) ;
279
- assert . strictEqual ( 0x67 , b [ 3 ] ) ;
280
- assert . strictEqual ( 0x1f , b [ 4 ] ) ;
281
- assert . strictEqual ( 0x36 , b [ 5 ] ) ;
282
- assert . strictEqual ( 0x76 , b [ 6 ] ) ;
283
- assert . strictEqual ( 0x24 , b [ 7 ] ) ;
284
- assert . strictEqual ( 0x5e , b [ 8 ] ) ;
285
- assert . strictEqual ( 0x98 , b [ 9 ] ) ;
286
- assert . strictEqual ( 0xcb , b [ 10 ] ) ;
287
- assert . strictEqual ( 0x0d , b [ 11 ] ) ;
288
- assert . strictEqual ( 0xac , b [ 12 ] ) ;
289
- assert . strictEqual ( 0xa2 , b [ 13 ] ) ;
290
- assert . strictEqual ( 0x2f , b [ 14 ] ) ;
291
- assert . strictEqual ( 0x9d , b [ 15 ] ) ;
292
- assert . strictEqual ( 0xeb , b [ 16 ] ) ;
293
- assert . strictEqual ( 0xd8 , b [ 17 ] ) ;
294
- assert . strictEqual ( 0xa2 , b [ 18 ] ) ;
295
- assert . strictEqual ( 0xe6 , b [ 19 ] ) ;
279
+ assert . strictEqual ( 0xd3 , b [ 0 ] ) ;
280
+ assert . strictEqual ( 0xf2 , b [ 1 ] ) ;
281
+ assert . strictEqual ( 0x55 , b [ 2 ] ) ;
282
+ assert . strictEqual ( 0x67 , b [ 3 ] ) ;
283
+ assert . strictEqual ( 0x1f , b [ 4 ] ) ;
284
+ assert . strictEqual ( 0x36 , b [ 5 ] ) ;
285
+ assert . strictEqual ( 0x76 , b [ 6 ] ) ;
286
+ assert . strictEqual ( 0x24 , b [ 7 ] ) ;
287
+ assert . strictEqual ( 0x5e , b [ 8 ] ) ;
288
+ assert . strictEqual ( 0x98 , b [ 9 ] ) ;
289
+ assert . strictEqual ( 0xcb , b [ 10 ] ) ;
290
+ assert . strictEqual ( 0x0d , b [ 11 ] ) ;
291
+ assert . strictEqual ( 0xac , b [ 12 ] ) ;
292
+ assert . strictEqual ( 0xa2 , b [ 13 ] ) ;
293
+ assert . strictEqual ( 0x2f , b [ 14 ] ) ;
294
+ assert . strictEqual ( 0x9d , b [ 15 ] ) ;
295
+ assert . strictEqual ( 0xeb , b [ 16 ] ) ;
296
+ assert . strictEqual ( 0xd8 , b [ 17 ] ) ;
297
+ assert . strictEqual ( 0xa2 , b [ 18 ] ) ;
298
+ assert . strictEqual ( 0xe6 , b [ 19 ] ) ;
299
+ }
296
300
297
301
assert . strictEqual ( qs . unescapeBuffer ( 'a+b' , true ) . toString ( ) , 'a b' ) ;
298
302
assert . strictEqual ( qs . unescapeBuffer ( 'a%' ) . toString ( ) , 'a%' ) ;
@@ -303,29 +307,38 @@ assert.strictEqual(qs.unescapeBuffer('a%%').toString(), 'a%%');
303
307
304
308
305
309
// Test custom decode
306
- function demoDecode ( str ) {
307
- return str + str ;
310
+ {
311
+ function demoDecode ( str ) {
312
+ return str + str ;
313
+ }
314
+
315
+ check ( qs . parse ( 'a=a&b=b&c=c' , null , null , { decodeURIComponent : demoDecode } ) ,
316
+ { aa : 'aa' , bb : 'bb' , cc : 'cc' } ) ;
317
+ check ( qs . parse ( 'a=a&b=b&c=c' , null , '==' , { decodeURIComponent : ( str ) => str } ) ,
318
+ { 'a=a' : '' , 'b=b' : '' , 'c=c' : '' } ) ;
308
319
}
309
- check ( qs . parse ( 'a=a&b=b&c=c' , null , null , { decodeURIComponent : demoDecode } ) ,
310
- { aa : 'aa' , bb : 'bb' , cc : 'cc' } ) ;
311
- check ( qs . parse ( 'a=a&b=b&c=c' , null , '==' , { decodeURIComponent : ( str ) => str } ) ,
312
- { 'a=a' : '' , 'b=b' : '' , 'c=c' : '' } ) ;
313
320
314
321
// Test QueryString.unescape
315
- function errDecode ( str ) {
316
- throw new Error ( 'To jump to the catch scope' ) ;
322
+ {
323
+ function errDecode ( str ) {
324
+ throw new Error ( 'To jump to the catch scope' ) ;
325
+ }
326
+
327
+ check ( qs . parse ( 'a=a' , null , null , { decodeURIComponent : errDecode } ) ,
328
+ { a : 'a' } ) ;
317
329
}
318
- check ( qs . parse ( 'a=a' , null , null , { decodeURIComponent : errDecode } ) ,
319
- { a : 'a' } ) ;
320
330
321
331
// Test custom encode
322
- function demoEncode ( str ) {
323
- return str [ 0 ] ;
332
+ {
333
+ function demoEncode ( str ) {
334
+ return str [ 0 ] ;
335
+ }
336
+
337
+ const obj = { aa : 'aa' , bb : 'bb' , cc : 'cc' } ;
338
+ assert . strictEqual (
339
+ qs . stringify ( obj , null , null , { encodeURIComponent : demoEncode } ) ,
340
+ 'a=a&b=b&c=c' ) ;
324
341
}
325
- const obj = { aa : 'aa' , bb : 'bb' , cc : 'cc' } ;
326
- assert . strictEqual (
327
- qs . stringify ( obj , null , null , { encodeURIComponent : demoEncode } ) ,
328
- 'a=a&b=b&c=c' ) ;
329
342
330
343
// Test QueryString.unescapeBuffer
331
344
qsUnescapeTestCases . forEach ( function ( testCase ) {
@@ -334,12 +347,15 @@ qsUnescapeTestCases.forEach(function(testCase) {
334
347
} ) ;
335
348
336
349
// test overriding .unescape
337
- const prevUnescape = qs . unescape ;
338
- qs . unescape = function ( str ) {
339
- return str . replace ( / o / g, '_' ) ;
340
- } ;
341
- check ( qs . parse ( 'foo=bor' ) , createWithNoPrototype ( [ { key : 'f__' , value : 'b_r' } ] ) ) ;
342
- qs . unescape = prevUnescape ;
343
-
350
+ {
351
+ const prevUnescape = qs . unescape ;
352
+ qs . unescape = function ( str ) {
353
+ return str . replace ( / o / g, '_' ) ;
354
+ } ;
355
+ check (
356
+ qs . parse ( 'foo=bor' ) ,
357
+ createWithNoPrototype ( [ { key : 'f__' , value : 'b_r' } ] ) ) ;
358
+ qs . unescape = prevUnescape ;
359
+ }
344
360
// test separator and "equals" parsing order
345
361
check ( qs . parse ( 'foo&bar' , '&' , '&' ) , { foo : '' , bar : '' } ) ;
0 commit comments