Add datatables-1.9.4 and jquery-1.10.2 libraries
[proteocache.git] / webapp / resources / datatables-1.9.4 / media / unit_testing / tests_onhold / 4_server-side / sDom.js
1 // DATA_TEMPLATE: empty_table
2 oTest.fnStart( "sDom" );
3
4 /* This is going to be brutal on the browser! There is a lot that can be tested here... */
5
6 $(document).ready( function () {
7         /* Check the default */
8         var oTable = $('#example').dataTable( {
9                 "bServerSide": true,
10                 "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php"
11         } );
12         var oSettings = oTable.fnSettings();
13         
14         oTest.fnWaitTest( 
15                 "Default DOM varaible",
16                 null,
17                 function () { return oSettings.sDom == "lfrtip"; }
18         );
19         
20         oTest.fnWaitTest( 
21                 "Default DOM in document",
22                 null,
23                 function () {
24                         var nNodes = $('#demo div, #demo table');
25                         var nWrapper = document.getElementById('example_wrapper');
26                         var nLength = document.getElementById('example_length');
27                         var nFilter = document.getElementById('example_filter');
28                         var nInfo = document.getElementById('example_info');
29                         var nPaging = document.getElementById('example_paginate');
30                         var nTable = document.getElementById('example');
31                         
32                         var bReturn = 
33                                 nNodes[0] == nWrapper &&
34                                 nNodes[1] == nLength &&
35                                 nNodes[2] == nFilter &&
36                                 nNodes[3] == nTable &&
37                                 nNodes[4] == nInfo &&
38                                 nNodes[5] == nPaging;
39                         return bReturn;
40                 }
41         );
42         
43         oTest.fnWaitTest( 
44                 "Check example 1 in code propagates",
45                 function () {
46                         oSession.fnRestore();
47                         oTable = $('#example').dataTable( {
48                                 "bServerSide": true,
49                 "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
50                                 "sDom": '<"wrapper"flipt>'
51                         } );
52                         oSettings = oTable.fnSettings();
53                 },
54                 function () { return oSettings.sDom == '<"wrapper"flipt>'; }
55         );
56         
57         oTest.fnWaitTest( 
58                 "Check example 1 in DOM",
59                 null,
60                 function () {
61                         var jqNodes = $('#demo div, #demo table');
62                         var nNodes = [];
63                         
64                         /* Strip the paging nodes */
65                         for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
66                         {
67                                 if ( jqNodes[i].getAttribute('id') != "example_previous" &&
68                                      jqNodes[i].getAttribute('id') != "example_next" )
69                                 {
70                                         nNodes.push( jqNodes[i] );
71                                 }
72                         }
73                         
74                         var nWrapper = document.getElementById('example_wrapper');
75                         var nLength = document.getElementById('example_length');
76                         var nFilter = document.getElementById('example_filter');
77                         var nInfo = document.getElementById('example_info');
78                         var nPaging = document.getElementById('example_paginate');
79                         var nTable = document.getElementById('example');
80                         var nCustomWrapper = $('div.wrapper')[0];
81                         
82                         var bReturn = 
83                                 nNodes[0] == nWrapper &&
84                                 nNodes[1] == nCustomWrapper &&
85                                 nNodes[2] == nFilter &&
86                                 nNodes[3] == nLength &&
87                                 nNodes[4] == nInfo &&
88                                 nNodes[5] == nPaging &&
89                                 nNodes[6] == nTable;
90                         return bReturn;
91                 }
92         );
93         
94         oTest.fnWaitTest( 
95                 "Check example 2 in DOM",
96                 function () {
97                         oSession.fnRestore();
98                         $('#example').dataTable( {
99                                 "bServerSide": true,
100                 "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
101                                 "sDom": '<lf<t>ip>'
102                         } );
103                 },
104                 function () {
105                         var jqNodes = $('#demo div, #demo table');
106                         var nNodes = [];
107                         var nCustomWrappers = []
108                         
109                         /* Strip the paging nodes */
110                         for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
111                         {
112                                 if ( jqNodes[i].getAttribute('id') != "example_previous" &&
113                                      jqNodes[i].getAttribute('id') != "example_next" )
114                                 {
115                                         nNodes.push( jqNodes[i] );
116                                 }
117                                 
118                                 /* Only the two custom divs don't have class names */
119                                 if ( jqNodes[i].className == "" )
120                                 {
121                                         nCustomWrappers.push( jqNodes[i] );
122                                 }
123                         }
124                         
125                         var nWrapper = document.getElementById('example_wrapper');
126                         var nLength = document.getElementById('example_length');
127                         var nFilter = document.getElementById('example_filter');
128                         var nInfo = document.getElementById('example_info');
129                         var nPaging = document.getElementById('example_paginate');
130                         var nTable = document.getElementById('example');
131                         
132                         var bReturn = 
133                                 nNodes[0] == nWrapper &&
134                                 nNodes[1] == nCustomWrappers[0] &&
135                                 nNodes[2] == nLength &&
136                                 nNodes[3] == nFilter &&
137                                 nNodes[4] == nCustomWrappers[1] &&
138                                 nNodes[5] == nTable &&
139                                 nNodes[6] == nInfo &&
140                                 nNodes[7] == nPaging;
141                         return bReturn;
142                 }
143         );
144         
145         oTest.fnWaitTest( 
146                 "Check no length element",
147                 function () {
148                         oSession.fnRestore();
149                         $('#example').dataTable( {
150                                 "bServerSide": true,
151                 "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
152                                 "sDom": 'frtip'
153                         } );
154                 },
155                 function () {
156                         var nNodes = $('#demo div, #demo table');
157                         var nWrapper = document.getElementById('example_wrapper');
158                         var nLength = document.getElementById('example_length');
159                         var nFilter = document.getElementById('example_filter');
160                         var nInfo = document.getElementById('example_info');
161                         var nPaging = document.getElementById('example_paginate');
162                         var nTable = document.getElementById('example');
163                         
164                         var bReturn = 
165                                 nNodes[0] == nWrapper &&
166                                 null == nLength &&
167                                 nNodes[1] == nFilter &&
168                                 nNodes[2] == nTable &&
169                                 nNodes[3] == nInfo &&
170                                 nNodes[4] == nPaging;
171                         return bReturn;
172                 }
173         );
174         
175         oTest.fnWaitTest( 
176                 "Check no filter element",
177                 function () {
178                         oSession.fnRestore();
179                         $('#example').dataTable( {
180                                 "bServerSide": true,
181                 "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
182                                 "sDom": 'lrtip'
183                         } );
184                 },
185                 function () {
186                         var nNodes = $('#demo div, #demo table');
187                         var nWrapper = document.getElementById('example_wrapper');
188                         var nLength = document.getElementById('example_length');
189                         var nFilter = document.getElementById('example_filter');
190                         var nInfo = document.getElementById('example_info');
191                         var nPaging = document.getElementById('example_paginate');
192                         var nTable = document.getElementById('example');
193                         
194                         var bReturn = 
195                                 nNodes[0] == nWrapper &&
196                                 nNodes[1] == nLength &&
197                                 null == nFilter &&
198                                 nNodes[2] == nTable &&
199                                 nNodes[3] == nInfo &&
200                                 nNodes[4] == nPaging;
201                         return bReturn;
202                 }
203         );
204         
205         /* Note we don't test for no table as this is not supported (and it would be fairly daft! */
206         
207         oTest.fnWaitTest( 
208                 "Check no info element",
209                 function () {
210                         oSession.fnRestore();
211                         $('#example').dataTable( {
212                                 "bServerSide": true,
213                 "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
214                                 "sDom": 'lfrtp'
215                         } );
216                 },
217                 function () {
218                         var nNodes = $('#demo div, #demo table');
219                         var nWrapper = document.getElementById('example_wrapper');
220                         var nLength = document.getElementById('example_length');
221                         var nFilter = document.getElementById('example_filter');
222                         var nInfo = document.getElementById('example_info');
223                         var nPaging = document.getElementById('example_paginate');
224                         var nTable = document.getElementById('example');
225                         
226                         var bReturn = 
227                                 nNodes[0] == nWrapper &&
228                                 nNodes[1] == nLength &&
229                                 nNodes[2] == nFilter &&
230                                 nNodes[3] == nTable &&
231                                 null == nInfo &&
232                                 nNodes[4] == nPaging;
233                         return bReturn;
234                 }
235         );
236         
237         oTest.fnWaitTest( 
238                 "Check no paging element",
239                 function () {
240                         oSession.fnRestore();
241                         $('#example').dataTable( {
242                                 "bServerSide": true,
243                 "sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
244                                 "sDom": 'lfrti'
245                         } );
246                 },
247                 function () {
248                         var nNodes = $('#demo div, #demo table');
249                         var nWrapper = document.getElementById('example_wrapper');
250                         var nLength = document.getElementById('example_length');
251                         var nFilter = document.getElementById('example_filter');
252                         var nInfo = document.getElementById('example_info');
253                         var nPaging = document.getElementById('example_paginate');
254                         var nTable = document.getElementById('example');
255                         
256                         var bReturn = 
257                                 nNodes[0] == nWrapper &&
258                                 nNodes[1] == nLength &&
259                                 nNodes[2] == nFilter &&
260                                 nNodes[3] == nTable &&
261                                 nNodes[4] == nInfo &&
262                                 null == nPaging;
263                         return bReturn;
264                 }
265         );
266         
267         
268         oTest.fnComplete();
269 } );