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