@@ -2364,17 +2364,41 @@ describe('$http param serializers', function() {
23642364 expect ( decodeURIComponent ( jqrSer ( { a : 'b' , foo : [ 'bar' , 'baz' ] } ) ) ) . toEqual ( 'a=b&foo[]=bar&foo[]=baz' ) ;
23652365 } ) ;
23662366
2367+ it ( 'should serialize arrays with functions' , function ( ) {
2368+ expect ( jqrSer ( { foo : [ valueFn ( 'bar' ) ] } ) ) . toEqual ( 'foo%5B%5D=bar' ) ; // foo[]=bar
2369+ } ) ;
2370+
2371+ it ( 'should serialize arrays with functions inside objects' , function ( ) {
2372+ expect ( jqrSer ( { foo : { bar : [ valueFn ( 'baz' ) ] } } ) ) . toEqual ( 'foo%5Bbar%5D%5B%5D=baz' ) ; // foo[bar][]=baz
2373+ } ) ;
2374+
23672375 it ( 'should serialize objects by repeating param name with [key] suffix' , function ( ) {
23682376 expect ( jqrSer ( { a : 'b' , foo : { 'bar' : 'barv' , 'baz' : 'bazv' } } ) ) . toEqual ( 'a=b&foo%5Bbar%5D=barv&foo%5Bbaz%5D=bazv' ) ;
23692377 //a=b&foo[bar]=barv&foo[baz]=bazv
23702378 } ) ;
23712379
2380+ it ( 'should serialize objects with function properties' , function ( ) {
2381+ expect ( jqrSer ( { a : valueFn ( 'b' ) } ) ) . toEqual ( 'a=b' ) ;
2382+ } ) ;
2383+
2384+ it ( 'should serialize objects with function properties returning an object' , function ( ) {
2385+ expect ( jqrSer ( { a : valueFn ( { b : 'c' } ) } ) ) . toEqual ( 'a=%7B%22b%22:%22c%22%7D' ) ; //a={"b":"c"}
2386+ } ) ;
2387+
23722388 it ( 'should serialize nested objects by repeating param name with [key] suffix' , function ( ) {
23732389 expect ( jqrSer ( { a : [ 'b' , { c : 'd' } ] , e : { f : 'g' , 'h' : [ 'i' , 'j' ] } } ) ) . toEqual (
23742390 'a%5B%5D=b&a%5B1%5D%5Bc%5D=d&e%5Bf%5D=g&e%5Bh%5D%5B%5D=i&e%5Bh%5D%5B%5D=j' ) ;
23752391 //a[]=b&a[1][c]=d&e[f]=g&e[h][]=i&e[h][]=j
23762392 } ) ;
23772393
2394+ it ( 'should serialize nested objects with function properties' , function ( ) {
2395+ expect ( jqrSer ( { foo : { bar : valueFn ( 'barv' ) } } ) ) . toEqual ( 'foo%5Bbar%5D=barv' ) ; //foo[bar]=barv
2396+ } ) ;
2397+
2398+ it ( 'should serialize nested objects with function properties returning an object' , function ( ) {
2399+ expect ( jqrSer ( { foo : { bar : valueFn ( { bav : 'barv' } ) } } ) ) . toEqual ( 'foo%5Bbar%5D=%7B%22bav%22:%22barv%22%7D' ) ; //foo[bar]={"bav":"barv"}
2400+ } ) ;
2401+
23782402 it ( 'should serialize objects inside array elements using their index' , function ( ) {
23792403 expect ( jqrSer ( { a : [ 'b' , 'c' ] , d : [ { e : 'f' , g : 'h' } , 'i' , { j : 'k' } ] } ) ) . toEqual (
23802404 'a%5B%5D=b&a%5B%5D=c&d%5B0%5D%5Be%5D=f&d%5B0%5D%5Bg%5D=h&d%5B%5D=i&d%5B2%5D%5Bj%5D=k' ) ;
0 commit comments