@@ -555,5 +555,60 @@ test('parse()', function (t) {
555
555
st . end ( ) ;
556
556
} ) ;
557
557
558
+ t . test ( 'parses string/object combination' , function ( st ) {
559
+ st . deepEqual (
560
+ qs . parse ( 'a=val1&a.b=val2' , { allowDots : true } ) ,
561
+ { a : { 0 : 'val1' , b : 'val2' } } ,
562
+ 'string + object'
563
+ ) ;
564
+ st . deepEqual (
565
+ qs . parse ( 'a.b=val2&a=val1' , { allowDots : true } ) ,
566
+ { a : { 0 : 'val1' , b : 'val2' } } ,
567
+ 'object + string'
568
+ ) ;
569
+
570
+ st . deepEqual (
571
+ qs . parse ( 'a.b=val2&a=val1&a.c=val3' , { allowDots : true } ) ,
572
+ { a : { 0 : 'val1' , b : 'val2' , c : 'val3' } } ,
573
+ 'object + string + object'
574
+ ) ;
575
+
576
+ st . deepEqual (
577
+ qs . parse ( 'a.b=val2&a=val1&a=val3' , { allowDots : true } ) ,
578
+ { a : { 0 : 'val1' , 1 : 'val3' , b : 'val2' } } ,
579
+ 'object + string + string'
580
+ ) ;
581
+ st . deepEqual (
582
+ qs . parse ( 'a=val1&a.b=val2&a=val3' , { allowDots : true } ) ,
583
+ { a : { 0 : 'val1' , 1 : 'val3' , b : 'val2' } } ,
584
+ 'string + object + string'
585
+ ) ;
586
+
587
+ st . deepEqual (
588
+ qs . parse ( 'a=val1&a=val2&a=val3&a.b=val4' , { allowDots : true } ) ,
589
+ { a : { 0 : 'val1' , 1 : 'val2' , 2 : 'val3' , b : 'val4' } } ,
590
+ 'string + string + string + object'
591
+ ) ;
592
+
593
+ st . deepEqual (
594
+ qs . parse ( 'a=val1&a.b=val2&a.b=val3' , { allowDots : true } ) ,
595
+ { a : { 0 : 'val1' , b : [ 'val2' , 'val3' ] } } ,
596
+ 'string + object + object'
597
+ ) ;
598
+
599
+ st . deepEqual (
600
+ qs . parse ( 'a=val1&a.b=val2&a.b.c=val3' , { allowDots : true } ) ,
601
+ { a : { 0 : 'val1' , b : { 0 : 'val2' , c : 'val3' } } } ,
602
+ 'string + object + nested object'
603
+ ) ;
604
+ st . deepEqual (
605
+ qs . parse ( 'a.b.c=val3&a.b=val2&a=val1' , { allowDots : true } ) ,
606
+ { a : { 0 : 'val1' , b : { 0 : 'val2' , c : 'val3' } } } ,
607
+ 'nested object + object + string'
608
+ ) ;
609
+
610
+ st . end ( ) ;
611
+ } ) ;
612
+
558
613
t . end ( ) ;
559
614
} ) ;
0 commit comments