1 // DATA_TEMPLATE: dom_data
2 oTest.fnStart( "sDom" );
4 /* This is going to be brutal on the browser! There is a lot that can be tested here... */
6 $(document).ready( function () {
7 /* Check the default */
8 var oTable = $('#example').dataTable();
9 var oSettings = oTable.fnSettings();
12 "Default DOM varaible",
14 function () { return oSettings.sDom == "lfrtip"; }
18 "Default DOM in document",
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');
30 nNodes[0] == nWrapper &&
31 nNodes[1] == nLength &&
32 nNodes[2] == nFilter &&
33 nNodes[3] == nTable &&
41 "Check example 1 in code propagates",
44 oTable = $('#example').dataTable( {
45 "sDom": '<"wrapper"flipt>'
47 oSettings = oTable.fnSettings();
49 function () { return oSettings.sDom == '<"wrapper"flipt>'; }
53 "Check example 1 in DOM",
56 var jqNodes = $('#demo div, #demo table');
59 /* Strip the paging nodes */
60 for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
62 if ( jqNodes[i].getAttribute('id') != "example_previous" &&
63 jqNodes[i].getAttribute('id') != "example_next" )
65 nNodes.push( jqNodes[i] );
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];
78 nNodes[0] == nWrapper &&
79 nNodes[1] == nCustomWrapper &&
80 nNodes[2] == nFilter &&
81 nNodes[3] == nLength &&
83 nNodes[5] == nPaging &&
90 "Check example 2 in DOM",
93 $('#example').dataTable( {
98 var jqNodes = $('#demo div, #demo table');
100 var nCustomWrappers = []
102 /* Strip the paging nodes */
103 for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
105 if ( jqNodes[i].getAttribute('id') != "example_previous" &&
106 jqNodes[i].getAttribute('id') != "example_next" )
108 nNodes.push( jqNodes[i] );
111 /* Only the two custom divs don't have class names */
112 if ( jqNodes[i].className == "" )
114 nCustomWrappers.push( jqNodes[i] );
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');
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;
139 "Check no length element",
141 oSession.fnRestore();
142 $('#example').dataTable( {
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');
156 nNodes[0] == nWrapper &&
158 nNodes[1] == nFilter &&
159 nNodes[2] == nTable &&
160 nNodes[3] == nInfo &&
161 nNodes[4] == nPaging;
167 "Check no filter element",
169 oSession.fnRestore();
170 $('#example').dataTable( {
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');
184 nNodes[0] == nWrapper &&
185 nNodes[1] == nLength &&
187 nNodes[2] == nTable &&
188 nNodes[3] == nInfo &&
189 nNodes[4] == nPaging;
194 /* Note we don't test for no table as this is not supported (and it would be fairly daft! */
197 "Check no info element",
199 oSession.fnRestore();
200 $('#example').dataTable( {
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');
214 nNodes[0] == nWrapper &&
215 nNodes[1] == nLength &&
216 nNodes[2] == nFilter &&
217 nNodes[3] == nTable &&
219 nNodes[4] == nPaging;
225 "Check no paging element",
227 oSession.fnRestore();
228 $('#example').dataTable( {
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');
242 nNodes[0] == nWrapper &&
243 nNodes[1] == nLength &&
244 nNodes[2] == nFilter &&
245 nNodes[3] == nTable &&
246 nNodes[4] == nInfo &&
253 "Element with an id",
255 $('#example').dataTable( {
257 "sDom": '<"#test"lf>rti'
261 return $('#test').length == 1;
266 "Element with an id and a class",
268 $('#example').dataTable( {
270 "sDom": '<"#test.classTest"lf>rti'
274 return ($('#test').length == 1 && $('#test')[0].className == "classTest");
279 "Element with just a class",
281 $('#example').dataTable( {
283 "sDom": '<"classTest"lf>rti'
287 return ($('div.classTest').length == 1 );
292 "Two elements with an id",
294 $('#example').dataTable( {
296 "sDom": '<"#test1"lf>rti<"#test2"lf>'
300 return ($('#test1').length == 1 && $('#test2').length == 1);
305 "Two elements with an id and one with a class",
307 $('#example').dataTable( {
309 "sDom": '<"#test1"lf>rti<"#test2.classTest"lf>'
313 return ($('#test1').length == 1 && $('#test2').length == 1 && $('div.classTest').length == 1);