1 |
|
2 | var tf = new TableFilter('demo', {
|
3 | base_path: '../dist/tablefilter/',
|
4 | extensions: [{ name: 'filtersVisibility' }]
|
5 | });
|
6 | tf.init();
|
7 |
|
8 | var extTargetElement = document.createElement('div');
|
9 | extTargetElement.setAttribute('id', 'test');
|
10 | document.body.insertBefore(extTargetElement, tf.dom());
|
11 |
|
12 | module('Sanity checks');
|
13 | test('Filters visibility extension', function() {
|
14 | var ext = tf.extension('filtersVisibility');
|
15 | deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
|
16 | notEqual(ext, null, 'Extension instanciated');
|
17 | deepEqual(ext.initialized, true, 'Extension initialized');
|
18 | });
|
19 |
|
20 | module('Check UI');
|
21 | test('UI elements', function() {
|
22 | var ext = tf.extension('filtersVisibility');
|
23 | var cont = ext.contEl;
|
24 | var btn = ext.btnEl;
|
25 | deepEqual(cont.nodeName, 'SPAN', 'Container element');
|
26 | deepEqual(btn.nodeName, 'A', 'Button element');
|
27 | deepEqual(btn.title, 'Toggle filters', 'Button tooltip');
|
28 | deepEqual(btn.firstChild.nodeName, 'IMG', 'Image element');
|
29 | deepEqual(btn.firstChild.alt, 'Collapse filters', 'Button tooltip');
|
30 | });
|
31 |
|
32 | module('Check behaviours');
|
33 | test('Toggle filters', function() {
|
34 | var ext = tf.extension('filtersVisibility');
|
35 | ext.toggle();
|
36 | var filtersRow = tf.dom().rows[tf.getFiltersRowIndex()];
|
37 | deepEqual(filtersRow.style.display, 'none', 'Filters hidden');
|
38 | ext.toggle();
|
39 | deepEqual(filtersRow.style.display, '', 'Filters displayed');
|
40 | });
|
41 |
|
42 | test('Remove extension', function() {
|
43 | var ext = tf.extension('filtersVisibility');
|
44 | ext.destroy();
|
45 | deepEqual(ext.contEl, null, 'Container element removed');
|
46 | deepEqual(ext.btnEl, null, 'Button element removed');
|
47 | deepEqual(ext.initialized, false, 'Extension not initialized');
|
48 | });
|