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