Free cookie consent management tool by TermsFeed Policy Generator

source: branches/WebApplication/MVC2/HeuristicLabWeb.PluginHost/HLWebPluginHost/Content/jQuery/jQueryPlugins/DataTables-1.7.6/media/unit_testing/tests_onhold/1_dom/sDom.js @ 6286

Last change on this file since 6286 was 6286, checked in by dkahn, 13 years ago

#1198 Added jQuery plus plugins

File size: 8.1 KB
RevLine 
[6286]1// DATA_TEMPLATE: dom_data
2oTest.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].getAttribute('class') )
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} );
Note: See TracBrowser for help on using the repository browser.