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 / 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                 "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         
20         oTest.fnWaitTest( 
21                 "Default DOM varaible",
22                 null,
23                 function () { return oSettings.sDom == "lfrtip"; }
24         );
25         
26         oTest.fnWaitTest( 
27                 "Default DOM in document",
28                 null,
29                 function () {
30                         var nNodes = $('#demo div, #demo table');
31                         var nWrapper = document.getElementById('example_wrapper');
32                         var nLength = document.getElementById('example_length');
33                         var nFilter = document.getElementById('example_filter');
34                         var nInfo = document.getElementById('example_info');
35                         var nPaging = document.getElementById('example_paginate');
36                         var nTable = document.getElementById('example');
37                         
38                         var bReturn = 
39                                 nNodes[0] == nWrapper &&
40                                 nNodes[1] == nLength &&
41                                 nNodes[2] == nFilter &&
42                                 nNodes[3] == nTable &&
43                                 nNodes[4] == nInfo &&
44                                 nNodes[5] == nPaging;
45                         return bReturn;
46                 }
47         );
48         
49         oTest.fnWaitTest( 
50                 "Check example 1 in code propagates",
51                 function () {
52                         oSession.fnRestore();
53                         oTable = $('#example').dataTable( {
54                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
55                                 "aoColumnDefs": [
56                                         { "mData": "engine", "aTargets": [0] },
57                                         { "mData": "browser", "aTargets": [1] },
58                                         { "mData": "platform", "aTargets": [2] },
59                                         { "mData": "version", "aTargets": [3] },
60                                         { "mData": "grade", "aTargets": [4] }
61                                 ],
62                                 "sDom": '<"wrapper"flipt>'
63                         } );
64                         oSettings = oTable.fnSettings();
65                 },
66                 function () { return oSettings.sDom == '<"wrapper"flipt>'; }
67         );
68         
69         oTest.fnWaitTest( 
70                 "Check example 1 in DOM",
71                 null,
72                 function () {
73                         var jqNodes = $('#demo div, #demo table');
74                         var nNodes = [];
75                         
76                         /* Strip the paging nodes */
77                         for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
78                         {
79                                 if ( jqNodes[i].getAttribute('id') != "example_previous" &&
80                                      jqNodes[i].getAttribute('id') != "example_next" )
81                                 {
82                                         nNodes.push( jqNodes[i] );
83                                 }
84                         }
85                         
86                         var nWrapper = document.getElementById('example_wrapper');
87                         var nLength = document.getElementById('example_length');
88                         var nFilter = document.getElementById('example_filter');
89                         var nInfo = document.getElementById('example_info');
90                         var nPaging = document.getElementById('example_paginate');
91                         var nTable = document.getElementById('example');
92                         var nCustomWrapper = $('div.wrapper')[0];
93                         
94                         var bReturn = 
95                                 nNodes[0] == nWrapper &&
96                                 nNodes[1] == nCustomWrapper &&
97                                 nNodes[2] == nFilter &&
98                                 nNodes[3] == nLength &&
99                                 nNodes[4] == nInfo &&
100                                 nNodes[5] == nPaging &&
101                                 nNodes[6] == nTable;
102                         return bReturn;
103                 }
104         );
105         
106         oTest.fnWaitTest( 
107                 "Check example 2 in DOM",
108                 function () {
109                         oSession.fnRestore();
110                         $('#example').dataTable( {
111                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
112                                 "aoColumnDefs": [
113                                         { "mData": "engine", "aTargets": [0] },
114                                         { "mData": "browser", "aTargets": [1] },
115                                         { "mData": "platform", "aTargets": [2] },
116                                         { "mData": "version", "aTargets": [3] },
117                                         { "mData": "grade", "aTargets": [4] }
118                                 ],
119                                 "sDom": '<lf<t>ip>'
120                         } );
121                 },
122                 function () {
123                         var jqNodes = $('#demo div, #demo table');
124                         var nNodes = [];
125                         var nCustomWrappers = []
126                         
127                         /* Strip the paging nodes */
128                         for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
129                         {
130                                 if ( jqNodes[i].getAttribute('id') != "example_previous" &&
131                                      jqNodes[i].getAttribute('id') != "example_next" )
132                                 {
133                                         nNodes.push( jqNodes[i] );
134                                 }
135                                 
136                                 /* Only the two custom divs don't have class names */
137                                 if ( jqNodes[i].className == "" )
138                                 {
139                                         nCustomWrappers.push( jqNodes[i] );
140                                 }
141                         }
142                         
143                         var nWrapper = document.getElementById('example_wrapper');
144                         var nLength = document.getElementById('example_length');
145                         var nFilter = document.getElementById('example_filter');
146                         var nInfo = document.getElementById('example_info');
147                         var nPaging = document.getElementById('example_paginate');
148                         var nTable = document.getElementById('example');
149                         
150                         var bReturn = 
151                                 nNodes[0] == nWrapper &&
152                                 nNodes[1] == nCustomWrappers[0] &&
153                                 nNodes[2] == nLength &&
154                                 nNodes[3] == nFilter &&
155                                 nNodes[4] == nCustomWrappers[1] &&
156                                 nNodes[5] == nTable &&
157                                 nNodes[6] == nInfo &&
158                                 nNodes[7] == nPaging;
159                         return bReturn;
160                 }
161         );
162         
163         oTest.fnWaitTest( 
164                 "Check no length element",
165                 function () {
166                         oSession.fnRestore();
167                         $('#example').dataTable( {
168                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
169                                 "aoColumnDefs": [
170                                         { "mData": "engine", "aTargets": [0] },
171                                         { "mData": "browser", "aTargets": [1] },
172                                         { "mData": "platform", "aTargets": [2] },
173                                         { "mData": "version", "aTargets": [3] },
174                                         { "mData": "grade", "aTargets": [4] }
175                                 ],
176                                 "sDom": 'frtip'
177                         } );
178                 },
179                 function () {
180                         var nNodes = $('#demo div, #demo table');
181                         var nWrapper = document.getElementById('example_wrapper');
182                         var nLength = document.getElementById('example_length');
183                         var nFilter = document.getElementById('example_filter');
184                         var nInfo = document.getElementById('example_info');
185                         var nPaging = document.getElementById('example_paginate');
186                         var nTable = document.getElementById('example');
187                         
188                         var bReturn = 
189                                 nNodes[0] == nWrapper &&
190                                 null == nLength &&
191                                 nNodes[1] == nFilter &&
192                                 nNodes[2] == nTable &&
193                                 nNodes[3] == nInfo &&
194                                 nNodes[4] == nPaging;
195                         return bReturn;
196                 }
197         );
198         
199         oTest.fnWaitTest( 
200                 "Check no filter element",
201                 function () {
202                         oSession.fnRestore();
203                         $('#example').dataTable( {
204                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
205                                 "aoColumnDefs": [
206                                         { "mData": "engine", "aTargets": [0] },
207                                         { "mData": "browser", "aTargets": [1] },
208                                         { "mData": "platform", "aTargets": [2] },
209                                         { "mData": "version", "aTargets": [3] },
210                                         { "mData": "grade", "aTargets": [4] }
211                                 ],
212                                 "sDom": 'lrtip'
213                         } );
214                 },
215                 function () {
216                         var nNodes = $('#demo div, #demo table');
217                         var nWrapper = document.getElementById('example_wrapper');
218                         var nLength = document.getElementById('example_length');
219                         var nFilter = document.getElementById('example_filter');
220                         var nInfo = document.getElementById('example_info');
221                         var nPaging = document.getElementById('example_paginate');
222                         var nTable = document.getElementById('example');
223                         
224                         var bReturn = 
225                                 nNodes[0] == nWrapper &&
226                                 nNodes[1] == nLength &&
227                                 null == nFilter &&
228                                 nNodes[2] == nTable &&
229                                 nNodes[3] == nInfo &&
230                                 nNodes[4] == nPaging;
231                         return bReturn;
232                 }
233         );
234         
235         /* Note we don't test for no table as this is not supported (and it would be fairly daft! */
236         
237         oTest.fnWaitTest( 
238                 "Check no info element",
239                 function () {
240                         oSession.fnRestore();
241                         $('#example').dataTable( {
242                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
243                                 "aoColumnDefs": [
244                                         { "mData": "engine", "aTargets": [0] },
245                                         { "mData": "browser", "aTargets": [1] },
246                                         { "mData": "platform", "aTargets": [2] },
247                                         { "mData": "version", "aTargets": [3] },
248                                         { "mData": "grade", "aTargets": [4] }
249                                 ],
250                                 "sDom": 'lfrtp'
251                         } );
252                 },
253                 function () {
254                         var nNodes = $('#demo div, #demo table');
255                         var nWrapper = document.getElementById('example_wrapper');
256                         var nLength = document.getElementById('example_length');
257                         var nFilter = document.getElementById('example_filter');
258                         var nInfo = document.getElementById('example_info');
259                         var nPaging = document.getElementById('example_paginate');
260                         var nTable = document.getElementById('example');
261                         
262                         var bReturn = 
263                                 nNodes[0] == nWrapper &&
264                                 nNodes[1] == nLength &&
265                                 nNodes[2] == nFilter &&
266                                 nNodes[3] == nTable &&
267                                 null == nInfo &&
268                                 nNodes[4] == nPaging;
269                         return bReturn;
270                 }
271         );
272         
273         oTest.fnWaitTest( 
274                 "Check no paging element",
275                 function () {
276                         oSession.fnRestore();
277                         $('#example').dataTable( {
278                                 "sAjaxSource": "../../../examples/ajax/sources/objects.txt",
279                                 "aoColumnDefs": [
280                                         { "mData": "engine", "aTargets": [0] },
281                                         { "mData": "browser", "aTargets": [1] },
282                                         { "mData": "platform", "aTargets": [2] },
283                                         { "mData": "version", "aTargets": [3] },
284                                         { "mData": "grade", "aTargets": [4] }
285                                 ],
286                                 "sDom": 'lfrti'
287                         } );
288                 },
289                 function () {
290                         var nNodes = $('#demo div, #demo table');
291                         var nWrapper = document.getElementById('example_wrapper');
292                         var nLength = document.getElementById('example_length');
293                         var nFilter = document.getElementById('example_filter');
294                         var nInfo = document.getElementById('example_info');
295                         var nPaging = document.getElementById('example_paginate');
296                         var nTable = document.getElementById('example');
297                         
298                         var bReturn = 
299                                 nNodes[0] == nWrapper &&
300                                 nNodes[1] == nLength &&
301                                 nNodes[2] == nFilter &&
302                                 nNodes[3] == nTable &&
303                                 nNodes[4] == nInfo &&
304                                 null == nPaging;
305                         return bReturn;
306                 }
307         );
308         
309         
310         oTest.fnComplete();
311 } );