@@ -84,6 +84,29 @@ asyncTest('clicking on a link with data-remote attribute', 5, function() {
84
84
. trigger ( 'click' ) ;
85
85
} ) ;
86
86
87
+ asyncTest ( 'clicking on a link with data-remote attribute and data-params as JSON' , 6 , function ( ) {
88
+ var value1 = 0 ,
89
+ value2 = '\'quoted"/>&<\'value"' ,
90
+ value3 = { foo : { bar : { baz : value2 } } } ,
91
+ params = {
92
+ data1 : value1 ,
93
+ data2 : value2 ,
94
+ data3 : value3
95
+ } ;
96
+ $ ( 'a[data-remote]' )
97
+ . attr ( 'data-params' , JSON . stringify ( params ) )
98
+ . bind ( 'ajax:success' , function ( e , data , status , xhr ) {
99
+ App . assertCallbackInvoked ( 'ajax:success' ) ;
100
+ App . assertRequestPath ( data , '/echo' ) ;
101
+ equal ( data . params . data1 , value1 , 'params should have key data1 with right value' ) ;
102
+ equal ( data . params . data2 , value2 , 'params should have key data2 with right value' ) ;
103
+ propEqual ( data . params . data3 , { foo : { bar : { baz : value2 } } } , 'params should have key data3 with right value' ) ;
104
+ App . assertGetRequest ( data ) ;
105
+ } )
106
+ . bind ( 'ajax:complete' , function ( ) { start ( ) } )
107
+ . trigger ( 'click' ) ;
108
+ } ) ;
109
+
87
110
asyncTest ( 'clicking on a button with data-remote attribute' , 5 , function ( ) {
88
111
$ ( 'button[data-remote]' )
89
112
. bind ( 'ajax:success' , function ( e , data , status , xhr ) {
0 commit comments