@@ -254,7 +254,7 @@ qsWeirdObjects.forEach(function(testCase) {
254
254
// invalid surrogate pair throws URIError
255
255
assert . throws ( function ( ) {
256
256
qs . stringify ( { foo : '\udc00' } ) ;
257
- } , URIError ) ;
257
+ } , / ^ U R I E r r o r : U R I m a l f o r m e d $ / ) ;
258
258
259
259
// coerce numbers to string
260
260
assert . strictEqual ( 'foo=0' , qs . stringify ( { foo : 0 } ) ) ;
@@ -318,43 +318,47 @@ assert.strictEqual(
318
318
0 ) ;
319
319
320
320
// Test removing limit
321
- function testUnlimitedKeys ( ) {
322
- const query = { } ;
321
+ {
322
+ function testUnlimitedKeys ( ) {
323
+ const query = { } ;
323
324
324
- for ( let i = 0 ; i < 2000 ; i ++ ) query [ i ] = i ;
325
+ for ( let i = 0 ; i < 2000 ; i ++ ) query [ i ] = i ;
325
326
326
- const url = qs . stringify ( query ) ;
327
+ const url = qs . stringify ( query ) ;
327
328
328
- assert . strictEqual (
329
- Object . keys ( qs . parse ( url , null , null , { maxKeys : 0 } ) ) . length ,
329
+ assert . strictEqual (
330
+ Object . keys ( qs . parse ( url , null , null , { maxKeys : 0 } ) ) . length ,
330
331
2000 ) ;
331
- }
332
- testUnlimitedKeys ( ) ;
332
+ }
333
333
334
+ testUnlimitedKeys ( ) ;
335
+ }
334
336
335
- const b = qs . unescapeBuffer ( '%d3%f2Ug%1f6v%24%5e%98%cb' +
336
- '%0d%ac%a2%2f%9d%eb%d8%a2%e6' ) ;
337
+ {
338
+ const b = qs . unescapeBuffer ( '%d3%f2Ug%1f6v%24%5e%98%cb' +
339
+ '%0d%ac%a2%2f%9d%eb%d8%a2%e6' ) ;
337
340
// <Buffer d3 f2 55 67 1f 36 76 24 5e 98 cb 0d ac a2 2f 9d eb d8 a2 e6>
338
- assert . strictEqual ( 0xd3 , b [ 0 ] ) ;
339
- assert . strictEqual ( 0xf2 , b [ 1 ] ) ;
340
- assert . strictEqual ( 0x55 , b [ 2 ] ) ;
341
- assert . strictEqual ( 0x67 , b [ 3 ] ) ;
342
- assert . strictEqual ( 0x1f , b [ 4 ] ) ;
343
- assert . strictEqual ( 0x36 , b [ 5 ] ) ;
344
- assert . strictEqual ( 0x76 , b [ 6 ] ) ;
345
- assert . strictEqual ( 0x24 , b [ 7 ] ) ;
346
- assert . strictEqual ( 0x5e , b [ 8 ] ) ;
347
- assert . strictEqual ( 0x98 , b [ 9 ] ) ;
348
- assert . strictEqual ( 0xcb , b [ 10 ] ) ;
349
- assert . strictEqual ( 0x0d , b [ 11 ] ) ;
350
- assert . strictEqual ( 0xac , b [ 12 ] ) ;
351
- assert . strictEqual ( 0xa2 , b [ 13 ] ) ;
352
- assert . strictEqual ( 0x2f , b [ 14 ] ) ;
353
- assert . strictEqual ( 0x9d , b [ 15 ] ) ;
354
- assert . strictEqual ( 0xeb , b [ 16 ] ) ;
355
- assert . strictEqual ( 0xd8 , b [ 17 ] ) ;
356
- assert . strictEqual ( 0xa2 , b [ 18 ] ) ;
357
- assert . strictEqual ( 0xe6 , b [ 19 ] ) ;
341
+ assert . strictEqual ( 0xd3 , b [ 0 ] ) ;
342
+ assert . strictEqual ( 0xf2 , b [ 1 ] ) ;
343
+ assert . strictEqual ( 0x55 , b [ 2 ] ) ;
344
+ assert . strictEqual ( 0x67 , b [ 3 ] ) ;
345
+ assert . strictEqual ( 0x1f , b [ 4 ] ) ;
346
+ assert . strictEqual ( 0x36 , b [ 5 ] ) ;
347
+ assert . strictEqual ( 0x76 , b [ 6 ] ) ;
348
+ assert . strictEqual ( 0x24 , b [ 7 ] ) ;
349
+ assert . strictEqual ( 0x5e , b [ 8 ] ) ;
350
+ assert . strictEqual ( 0x98 , b [ 9 ] ) ;
351
+ assert . strictEqual ( 0xcb , b [ 10 ] ) ;
352
+ assert . strictEqual ( 0x0d , b [ 11 ] ) ;
353
+ assert . strictEqual ( 0xac , b [ 12 ] ) ;
354
+ assert . strictEqual ( 0xa2 , b [ 13 ] ) ;
355
+ assert . strictEqual ( 0x2f , b [ 14 ] ) ;
356
+ assert . strictEqual ( 0x9d , b [ 15 ] ) ;
357
+ assert . strictEqual ( 0xeb , b [ 16 ] ) ;
358
+ assert . strictEqual ( 0xd8 , b [ 17 ] ) ;
359
+ assert . strictEqual ( 0xa2 , b [ 18 ] ) ;
360
+ assert . strictEqual ( 0xe6 , b [ 19 ] ) ;
361
+ }
358
362
359
363
assert . strictEqual ( qs . unescapeBuffer ( 'a+b' , true ) . toString ( ) , 'a b' ) ;
360
364
assert . strictEqual ( qs . unescapeBuffer ( 'a+b' ) . toString ( ) , 'a+b' ) ;
@@ -368,29 +372,38 @@ assert.strictEqual(qs.unescapeBuffer('a%%').toString(), 'a%%');
368
372
check ( qs . parse ( '%\u0100=%\u0101' ) , { '%Ā' : '%ā' } ) ;
369
373
370
374
// Test custom decode
371
- function demoDecode ( str ) {
372
- return str + str ;
375
+ {
376
+ function demoDecode ( str ) {
377
+ return str + str ;
378
+ }
379
+
380
+ check ( qs . parse ( 'a=a&b=b&c=c' , null , null , { decodeURIComponent : demoDecode } ) ,
381
+ { aa : 'aa' , bb : 'bb' , cc : 'cc' } ) ;
382
+ check ( qs . parse ( 'a=a&b=b&c=c' , null , '==' , { decodeURIComponent : ( str ) => str } ) ,
383
+ { 'a=a' : '' , 'b=b' : '' , 'c=c' : '' } ) ;
373
384
}
374
- check ( qs . parse ( 'a=a&b=b&c=c' , null , null , { decodeURIComponent : demoDecode } ) ,
375
- { aa : 'aa' , bb : 'bb' , cc : 'cc' } ) ;
376
- check ( qs . parse ( 'a=a&b=b&c=c' , null , '==' , { decodeURIComponent : ( str ) => str } ) ,
377
- { 'a=a' : '' , 'b=b' : '' , 'c=c' : '' } ) ;
378
385
379
386
// Test QueryString.unescape
380
- function errDecode ( str ) {
381
- throw new Error ( 'To jump to the catch scope' ) ;
387
+ {
388
+ function errDecode ( str ) {
389
+ throw new Error ( 'To jump to the catch scope' ) ;
390
+ }
391
+
392
+ check ( qs . parse ( 'a=a' , null , null , { decodeURIComponent : errDecode } ) ,
393
+ { a : 'a' } ) ;
382
394
}
383
- check ( qs . parse ( 'a=a' , null , null , { decodeURIComponent : errDecode } ) ,
384
- { a : 'a' } ) ;
385
395
386
396
// Test custom encode
387
- function demoEncode ( str ) {
388
- return str [ 0 ] ;
397
+ {
398
+ function demoEncode ( str ) {
399
+ return str [ 0 ] ;
400
+ }
401
+
402
+ const obj = { aa : 'aa' , bb : 'bb' , cc : 'cc' } ;
403
+ assert . strictEqual (
404
+ qs . stringify ( obj , null , null , { encodeURIComponent : demoEncode } ) ,
405
+ 'a=a&b=b&c=c' ) ;
389
406
}
390
- const obj = { aa : 'aa' , bb : 'bb' , cc : 'cc' } ;
391
- assert . strictEqual (
392
- qs . stringify ( obj , null , null , { encodeURIComponent : demoEncode } ) ,
393
- 'a=a&b=b&c=c' ) ;
394
407
395
408
// Test QueryString.unescapeBuffer
396
409
qsUnescapeTestCases . forEach ( function ( testCase ) {
@@ -399,12 +412,15 @@ qsUnescapeTestCases.forEach(function(testCase) {
399
412
} ) ;
400
413
401
414
// test overriding .unescape
402
- const prevUnescape = qs . unescape ;
403
- qs . unescape = function ( str ) {
404
- return str . replace ( / o / g, '_' ) ;
405
- } ;
406
- check ( qs . parse ( 'foo=bor' ) , createWithNoPrototype ( [ { key : 'f__' , value : 'b_r' } ] ) ) ;
407
- qs . unescape = prevUnescape ;
408
-
415
+ {
416
+ const prevUnescape = qs . unescape ;
417
+ qs . unescape = function ( str ) {
418
+ return str . replace ( / o / g, '_' ) ;
419
+ } ;
420
+ check (
421
+ qs . parse ( 'foo=bor' ) ,
422
+ createWithNoPrototype ( [ { key : 'f__' , value : 'b_r' } ] ) ) ;
423
+ qs . unescape = prevUnescape ;
424
+ }
409
425
// test separator and "equals" parsing order
410
426
check ( qs . parse ( 'foo&bar' , '&' , '&' ) , { foo : '' , bar : '' } ) ;
0 commit comments