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 / fnHeaderCallback.js
1 // DATA_TEMPLATE: empty_table
2 oTest.fnStart( "fnHeaderCallback" );
3
4 $(document).ready( function () {
5         /* Check the default */
6         var oTable = $('#example').dataTable( {
7                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
8                 "aoColumns": [
9                         { "mData": "engine" },
10                         { "mData": "browser" },
11                         { "mData": "platform" },
12                         { "mData": "version" },
13                         { "mData": "grade" }
14                 ]
15         } );
16         var oSettings = oTable.fnSettings();
17         var mPass, bInit;
18         
19         oTest.fnWaitTest( 
20                 "Default should be null",
21                 null,
22                 function () { return oSettings.fnHeaderCallback == null; }
23         );
24         
25         
26         oTest.fnWaitTest( 
27                 "Five arguments passed",
28                 function () {
29                         oSession.fnRestore();
30                         
31                         mPass = -1;
32                         bInit = false;
33                         $('#example').dataTable( {
34                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
35                                 "aoColumnDefs": [
36                                         { "mData": "engine", "aTargets": [0] },
37                                         { "mData": "browser", "aTargets": [1] },
38                                         { "mData": "platform", "aTargets": [2] },
39                                         { "mData": "version", "aTargets": [3] },
40                                         { "mData": "grade", "aTargets": [4] }
41                                 ],
42                                 "fnHeaderCallback": function ( ) {
43                                         mPass = arguments.length;
44                                 },
45                                 "fnInitComplete": function () {
46                                         bInit = true;
47                                 }
48                         } );
49                 },
50                 function () { return mPass == 5 && bInit; }
51         );
52         
53         
54         /* The header callback is called once for the init and then when the data is added */
55         oTest.fnWaitTest( 
56                 "fnHeaderCallback called once per draw",
57                 function () {
58                         oSession.fnRestore();
59                         
60                         mPass = 0;
61                         bInit = false;
62                         $('#example').dataTable( {
63                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
64                                 "aoColumnDefs": [
65                                         { "mData": "engine", "aTargets": [0] },
66                                         { "mData": "browser", "aTargets": [1] },
67                                         { "mData": "platform", "aTargets": [2] },
68                                         { "mData": "version", "aTargets": [3] },
69                                         { "mData": "grade", "aTargets": [4] }
70                                 ],
71                                 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
72                                         mPass++;
73                                 },
74                                 "fnInitComplete": function () {
75                                         bInit = true;
76                                 }
77                         } );
78                 },
79                 function () { return mPass == 2 && bInit; }
80         );
81         
82         oTest.fnWaitTest( 
83                 "fnRowCallback called on paging (i.e. another draw)",
84                 function () { $('#example_next').click(); },
85                 function () { return mPass == 3; }
86         );
87         
88         
89         oTest.fnWaitTest( 
90                 "fnRowCallback allows us to alter row information",
91                 function () {
92                         oSession.fnRestore();
93                         $('#example').dataTable( {
94                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
95                                 "aoColumnDefs": [
96                                         { "mData": "engine", "aTargets": [0] },
97                                         { "mData": "browser", "aTargets": [1] },
98                                         { "mData": "platform", "aTargets": [2] },
99                                         { "mData": "version", "aTargets": [3] },
100                                         { "mData": "grade", "aTargets": [4] }
101                                 ],
102                                 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
103                                         nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
104                                 }
105                         } );
106                 },
107                 function () { return $('#example thead th:eq(0)').html() == "Displaying 10 records"; }
108         );
109         
110         
111         oTest.fnWaitTest( 
112                 "iStart correct on first page",
113                 function () {
114                         oSession.fnRestore();
115                         
116                         mPass = true;
117                         $('#example').dataTable( {
118                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
119                                 "aoColumnDefs": [
120                                         { "mData": "engine", "aTargets": [0] },
121                                         { "mData": "browser", "aTargets": [1] },
122                                         { "mData": "platform", "aTargets": [2] },
123                                         { "mData": "version", "aTargets": [3] },
124                                         { "mData": "grade", "aTargets": [4] }
125                                 ],
126                                 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
127                                         if ( iStart != 0 )
128                                         {
129                                                 mPass = false;
130                                         }
131                                 }
132                         } );
133                 },
134                 function () { return mPass; }
135         );
136         
137         
138         oTest.fnWaitTest( 
139                 "iStart correct on second page",
140                 function () {
141                         oSession.fnRestore();
142                         
143                         mPass = false;
144                         $('#example').dataTable( {
145                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
146                                 "aoColumnDefs": [
147                                         { "mData": "engine", "aTargets": [0] },
148                                         { "mData": "browser", "aTargets": [1] },
149                                         { "mData": "platform", "aTargets": [2] },
150                                         { "mData": "version", "aTargets": [3] },
151                                         { "mData": "grade", "aTargets": [4] }
152                                 ],
153                                 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
154                                         if ( iStart == 10 )
155                                         {
156                                                 mPass = true;
157                                         }
158                                 },
159                                 "fnInitComplete": function () {
160                                         $('#example_next').click();
161                                 }
162                         } );
163                 },
164                 function () { return mPass; }
165         );
166         
167         
168         oTest.fnWaitTest( 
169                 "iEnd correct on second page",
170                 function () {
171                         oSession.fnRestore();
172                         
173                         mPass = false;
174                         $('#example').dataTable( {
175                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
176                                 "aoColumnDefs": [
177                                         { "mData": "engine", "aTargets": [0] },
178                                         { "mData": "browser", "aTargets": [1] },
179                                         { "mData": "platform", "aTargets": [2] },
180                                         { "mData": "version", "aTargets": [3] },
181                                         { "mData": "grade", "aTargets": [4] }
182                                 ],
183                                 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
184                                         if ( iEnd == 20 )
185                                         {
186                                                 mPass = true;
187                                         }
188                                 },
189                                 "fnInitComplete": function () {
190                                         $('#example_next').click();
191                                 }
192                         } );
193                 },
194                 function () { return mPass; }
195         );
196         
197         
198         oTest.fnWaitTest( 
199                 "aiDisplay length is full data when not filtered",
200                 function () {
201                         oSession.fnRestore();
202                         
203                         mPass = false;
204                         $('#example').dataTable( {
205                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
206                                 "aoColumnDefs": [
207                                         { "mData": "engine", "aTargets": [0] },
208                                         { "mData": "browser", "aTargets": [1] },
209                                         { "mData": "platform", "aTargets": [2] },
210                                         { "mData": "version", "aTargets": [3] },
211                                         { "mData": "grade", "aTargets": [4] }
212                                 ],
213                                 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
214                                         if ( aiDisplay.length == 57 )
215                                         {
216                                                 mPass = true;
217                                         }
218                                 }
219                         } );
220                 },
221                 function () { return mPass; }
222         );
223         
224         oTest.fnWaitTest( 
225                 "aiDisplay length is 9 when filtering on 'Mozilla'",
226                 function () {
227                         oSession.fnRestore();
228                         
229                         mPass = false;
230                         oTable = $('#example').dataTable( {
231                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
232                                 "aoColumnDefs": [
233                                         { "mData": "engine", "aTargets": [0] },
234                                         { "mData": "browser", "aTargets": [1] },
235                                         { "mData": "platform", "aTargets": [2] },
236                                         { "mData": "version", "aTargets": [3] },
237                                         { "mData": "grade", "aTargets": [4] }
238                                 ],
239                                 "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
240                                         if ( aiDisplay.length == 9 )
241                                         {
242                                                 mPass = true;
243                                         }
244                                 }
245                         } );
246                         oTable.fnFilter( "Mozilla" );
247                 },
248                 function () { return mPass; }
249         );
250         
251         
252         
253         oTest.fnComplete();
254 } );