Add datatables-1.9.4 and jquery-1.10.2 libraries
[proteocache.git] / webapp / resources / datatables-1.9.4 / media / unit_testing / tests_onhold / 5_ajax_objects / fnRowCallback.js
1 // DATA_TEMPLATE: empty_table
2 oTest.fnStart( "fnRowCallback" );
3
4 /* Note - fnRowCallback MUST return the first arguments (modified or not) */
5
6 $(document).ready( function () {
7         /* Check the default */
8         var oTable = $('#example').dataTable( {
9                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
10                 "aoColumns": [
11                         { "mData": "engine" },
12                         { "mData": "browser" },
13                         { "mData": "platform" },
14                         { "mData": "version" },
15                         { "mData": "grade" }
16                 ]
17         } );
18         var oSettings = oTable.fnSettings();
19         var mPass;
20         
21         oTest.fnWaitTest( 
22                 "Default should be null",
23                 null,
24                 function () { return oSettings.fnRowCallback == null; }
25         );
26         
27         
28         oTest.fnWaitTest( 
29                 "Four arguments passed",
30                 function () {
31                         oSession.fnRestore();
32                         
33                         mPass = -1;
34                         $('#example').dataTable( {
35                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
36                                 "aoColumnDefs": [
37                                         { "mData": "engine", "aTargets": [0] },
38                                         { "mData": "browser", "aTargets": [1] },
39                                         { "mData": "platform", "aTargets": [2] },
40                                         { "mData": "version", "aTargets": [3] },
41                                         { "mData": "grade", "aTargets": [4] }
42                                 ],
43                                 "fnRowCallback": function ( nTr ) {
44                                         mPass = arguments.length;
45                                         return nTr;
46                                 }
47                         } );
48                 },
49                 function () { return mPass == 4; }
50         );
51         
52         
53         oTest.fnWaitTest( 
54                 "fnRowCallback called once for each drawn row",
55                 function () {
56                         oSession.fnRestore();
57                         
58                         mPass = 0;
59                         $('#example').dataTable( {
60                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
61                                 "aoColumnDefs": [
62                                         { "mData": "engine", "aTargets": [0] },
63                                         { "mData": "browser", "aTargets": [1] },
64                                         { "mData": "platform", "aTargets": [2] },
65                                         { "mData": "version", "aTargets": [3] },
66                                         { "mData": "grade", "aTargets": [4] }
67                                 ],
68                                 "fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
69                                         mPass++;
70                                         return nTr;
71                                 }
72                         } );
73                 },
74                 function () { return mPass == 10; }
75         );
76         
77         oTest.fnWaitTest( 
78                 "fnRowCallback allows us to alter row information",
79                 function () {
80                         oSession.fnRestore();
81                         $('#example').dataTable( {
82                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
83                                 "aoColumnDefs": [
84                                         { "mData": "engine", "aTargets": [0] },
85                                         { "mData": "browser", "aTargets": [1] },
86                                         { "mData": "platform", "aTargets": [2] },
87                                         { "mData": "version", "aTargets": [3] },
88                                         { "mData": "grade", "aTargets": [4] }
89                                 ],
90                                 "fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
91                                         $(nTr).addClass('unit_test');
92                                         return nTr;
93                                 }
94                         } );
95                 },
96                 function () { return $('#example tbody tr:eq(1)').hasClass('unit_test'); }
97         );
98         
99         oTest.fnWaitTest( 
100                 "Data array has length matching columns",
101                 function () {
102                         oSession.fnRestore();
103                         
104                         mPass = true;
105                         $('#example').dataTable( {
106                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
107                                 "aoColumnDefs": [
108                                         { "mData": "engine", "aTargets": [0] },
109                                         { "mData": "browser", "aTargets": [1] },
110                                         { "mData": "platform", "aTargets": [2] },
111                                         { "mData": "version", "aTargets": [3] },
112                                         { "mData": "grade", "aTargets": [4] }
113                                 ],
114                                 "fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
115                                         if ( asData.length != 5 )
116                                                 mPass = false;
117                                         return nTr;
118                                 }
119                         } );
120                 },
121                 function () { return mPass; }
122         );
123         
124         oTest.fnWaitTest( 
125                 "Data array has length matching columns",
126                 function () {
127                         oSession.fnRestore();
128                         
129                         mPass = true;
130                         var iCount = 0;
131                         $('#example').dataTable( {
132                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
133                                 "aoColumnDefs": [
134                                         { "mData": "engine", "aTargets": [0] },
135                                         { "mData": "browser", "aTargets": [1] },
136                                         { "mData": "platform", "aTargets": [2] },
137                                         { "mData": "version", "aTargets": [3] },
138                                         { "mData": "grade", "aTargets": [4] }
139                                 ],
140                                 "fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
141                                         if ( iCount != iDrawIndex )
142                                                 mPass = false;
143                                         iCount++;
144                                         return nTr;
145                                 }
146                         } );
147                 },
148                 function () { return mPass; }
149         );
150         
151         
152         
153         oTest.fnComplete();
154 } );