@@ -336,6 +336,27 @@ test('stringify()', function (t) {
336336 st . end ( ) ;
337337 } ) ;
338338
339+ t . test ( 'stringifies an empty array in different arrayFormat' , function ( st ) {
340+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false } ) , 'b[0]=&c=c' ) ;
341+ // arrayFormat default
342+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' } ) , 'b[0]=&c=c' ) ;
343+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'brackets' } ) , 'b[]=&c=c' ) ;
344+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'repeat' } ) , 'b=&c=c' ) ;
345+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'comma' } ) , 'b=&c=c' ) ;
346+ // with strictNullHandling
347+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' , strictNullHandling : true } ) , 'b[0]&c=c' ) ;
348+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'brackets' , strictNullHandling : true } ) , 'b[]&c=c' ) ;
349+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'repeat' , strictNullHandling : true } ) , 'b&c=c' ) ;
350+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'comma' , strictNullHandling : true } ) , 'b&c=c' ) ;
351+ // with skipNulls
352+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'indices' , skipNulls : true } ) , 'c=c' ) ;
353+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'brackets' , skipNulls : true } ) , 'c=c' ) ;
354+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'repeat' , skipNulls : true } ) , 'c=c' ) ;
355+ st . equal ( qs . stringify ( { a : [ ] , b : [ null ] , c : 'c' } , { encode : false , arrayFormat : 'comma' , skipNulls : true } ) , 'c=c' ) ;
356+
357+ st . end ( ) ;
358+ } ) ;
359+
339360 t . test ( 'stringifies a null object' , { skip : ! Object . create } , function ( st ) {
340361 var obj = Object . create ( null ) ;
341362 obj . a = 'b' ;
0 commit comments