@@ -17,6 +17,26 @@ describe("encode", function() {
1717 assert . deepEqual ( $form . serializeObject ( ) , { a : { b : { c : true } } } ) ;
1818 } ) ;
1919
20+ it ( "checkbox inputs as array don't break" , function ( ) {
21+ var $form = $ ( '<form><input type="checkbox" name="a[]" value="c" checked></form>' ) ;
22+ assert . deepEqual ( $form . serializeObject ( ) , { a : [ "c" ] } ) ;
23+ } ) ;
24+
25+ it ( "checkbox inputs as nested arrays don't break" , function ( ) {
26+ var $form = $ ( '<form><input type="checkbox" name="a[][b][]" value="c" checked><input type="checkbox" name="a[][b][]" value="d"></form>' ) ;
27+ assert . deepEqual ( $form . serializeObject ( ) , { a : [ { b : [ "c" ] } ] } ) ;
28+ } ) ;
29+
30+ it ( "crazy nested arrays don't break" , function ( ) {
31+ var $form = $ ( '<form><input name="a[][b]" value="1" checked><input name="a[][c][]" value="2" checked><input name="a[][c][]" value="3" checked><input name="a[][b]" value="4" checked></form>' ) ;
32+ assert . deepEqual ( $form . serializeObject ( ) , { a : [ { b : "1" , c : [ "2" , "3" ] } , { b : "4" } ] } ) ;
33+ } ) ;
34+
35+ it ( "checkbox inputs as nested arrays with a sibling don't break" , function ( ) {
36+ var $form = $ ( '<form><input type="checkbox" name="a[][b][]" value="c" checked><input name="a[][d]" value="e" checked></form>' ) ;
37+ assert . deepEqual ( $form . serializeObject ( ) , { a : [ { b : [ "c" ] , d : 'e' } ] } ) ;
38+ } ) ;
39+
2040 it ( "checkbox inputs as booleans if value is 'on'" , function ( ) {
2141 var $form = $ ( '<form><input type="checkbox" name="a" value="on" checked></form>' ) ;
2242 assert . deepEqual ( $form . serializeObject ( ) , { a : true } ) ;
0 commit comments