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