1 | var tf = new TableFilter('demo', {
|
2 | base_path: '../dist/tablefilter/',
|
3 | rows_counter: true
|
4 | });
|
5 | tf.init();
|
6 |
|
7 | var toolbar = tf.feature('toolbar');
|
8 |
|
9 | module('Sanity checks');
|
10 | test('toolbar component', function() {
|
11 |
|
12 | notEqual(toolbar, null, 'toolbar instanciated');
|
13 | equal(toolbar.contCssClass, 'inf', 'container css class');
|
14 | equal(toolbar.lContCssClass, 'ldiv', 'left container css class');
|
15 | equal(toolbar.cContCssClass, 'mdiv', 'middle container css class');
|
16 | equal(toolbar.rContCssClass, 'rdiv', 'right container css class');
|
17 | equal(toolbar.tgtId, null, 'external container id null');
|
18 | notEqual(toolbar.cont, null, 'container created');
|
19 | notEqual(toolbar.lCont, null, 'left inner container created');
|
20 | notEqual(toolbar.cCont, null, 'middle inner container created');
|
21 | notEqual(toolbar.rCont, null, 'right inner container created');
|
22 | equal(toolbar.emitter.events['initializing-feature'].length, 1,
|
23 | 'subscribed to `initializing-feature` event');
|
24 | equal(toolbar.emitter.events['initializing-extension'].length, 1,
|
25 | 'subscribed to `initializing-extension` event');
|
26 | });
|
27 |
|
28 | module('Feature interface');
|
29 | test('Properties', function() {
|
30 | deepEqual(toolbar.tf instanceof TableFilter, true, 'TableFilter instance');
|
31 | deepEqual(toolbar.feature, 'toolbar', 'Feature name');
|
32 | deepEqual(toolbar.enabled, true, 'Feature enabled');
|
33 | deepEqual(toolbar.initialized, true, 'Feature enabled');
|
34 | deepEqual(typeof toolbar.config, 'object', 'TF configuration object');
|
35 | deepEqual(typeof toolbar.init, 'function', 'Feature init method');
|
36 | deepEqual(typeof toolbar.destroy, 'function', 'Feature destroy method');
|
37 | deepEqual(typeof toolbar.reset, 'function', 'Feature reset method');
|
38 | deepEqual(typeof toolbar.enable, 'function', 'Feature enable method');
|
39 | deepEqual(typeof toolbar.disable, 'function', 'Feature enable method');
|
40 | deepEqual(typeof toolbar.isEnabled, 'function', 'Feature enable method');
|
41 | });
|
42 | test('Can destroy', function() {
|
43 | toolbar.destroy();
|
44 | deepEqual(toolbar.initialized, false, 'not initialised');
|
45 | });
|
46 | test('Can reset', function() {
|
47 | toolbar.reset();
|
48 | deepEqual(toolbar.enabled, true, 'enabled');
|
49 | });
|
50 | test('Can disable', function() {
|
51 | toolbar.disable();
|
52 | deepEqual(toolbar.enabled, false, 'disabled');
|
53 | });
|
54 | test('Can enable', function() {
|
55 | toolbar.enable();
|
56 | deepEqual(toolbar.enabled, true, 'enabled');
|
57 | });
|
58 | test('Can init', function() {
|
59 | toolbar.destroy();
|
60 | toolbar.enable();
|
61 | toolbar.init();
|
62 | deepEqual(toolbar.enabled, true, 'enabled');
|
63 | });
|
64 | test('Can check is enabled', function() {
|
65 | toolbar.isEnabled();
|
66 | deepEqual(toolbar.enabled, true, 'enabled');
|
67 | });
|
68 |
|
69 | module('Behaviour');
|
70 | test('Does not init if initialised', function() {
|
71 |
|
72 | var createContainer = toolbar.createContainer;
|
73 | var hit = 0;
|
74 | toolbar.createContainer = function() {
|
75 | hit++;
|
76 | };
|
77 |
|
78 |
|
79 | toolbar.init();
|
80 |
|
81 |
|
82 | deepEqual(hit, 0, 'does not initialise');
|
83 |
|
84 | toolbar.createContainer = createContainer;
|
85 | });
|
86 |
|
87 | test('Does not init if external', function() {
|
88 |
|
89 | toolbar.initialized = false;
|
90 | var createContainer = toolbar.createContainer;
|
91 | var hit = 0;
|
92 | toolbar.createContainer = function() {
|
93 | hit++;
|
94 | };
|
95 |
|
96 |
|
97 | toolbar.init(true);
|
98 |
|
99 |
|
100 | deepEqual(hit, 0, 'does not initialise');
|
101 |
|
102 | toolbar.createContainer = createContainer;
|
103 | toolbar.initialized = true;
|
104 | });
|
105 |
|
106 | test('Can get container', function() {
|
107 |
|
108 | var result = toolbar.container('left');
|
109 |
|
110 |
|
111 | deepEqual(result, toolbar.cont.querySelector('.ldiv'),
|
112 | 'left inner container');
|
113 | });
|
114 |
|
115 | test('Can get default container', function() {
|
116 |
|
117 | var result = toolbar.container();
|
118 |
|
119 |
|
120 | deepEqual(result, toolbar.cont.querySelector('.rdiv'),
|
121 | 'left inner container');
|
122 | });
|
123 |
|
124 | test('Can get container with appended element', function() {
|
125 |
|
126 | var result = toolbar.container('center',
|
127 | document.createElement('span')
|
128 | .appendChild(document.createTextNode('test')));
|
129 |
|
130 |
|
131 | deepEqual(result.firstChild, toolbar.cont.querySelector('.mdiv').firstChild,
|
132 | 'center inner container with appended element');
|
133 | });
|
134 |
|
135 | test('Can create container with css class', function() {
|
136 |
|
137 | var result = toolbar.createContainer(toolbar.cont, 'test');
|
138 |
|
139 |
|
140 | deepEqual(result, toolbar.cont.querySelector('.test'),
|
141 | 'inner container created');
|
142 | });
|
143 |
|
144 | module('Custom css');
|
145 | test('config with custom css', function() {
|
146 |
|
147 | tf.destroy();
|
148 | tf = new TableFilter('demo', {
|
149 | base_path: '../dist/tablefilter/',
|
150 | toolbar: {
|
151 | container_css_class: 'cont-css',
|
152 | left_cont_css_class: 'left-cont-css',
|
153 | right_cont_css_class: 'right-cont-css',
|
154 | center_cont_css_class: 'center-cont-css'
|
155 | }
|
156 | });
|
157 |
|
158 |
|
159 | tf.init();
|
160 | var toolbar = tf.feature('toolbar');
|
161 |
|
162 | deepEqual(toolbar.cont, document.querySelector('.cont-css'),
|
163 | 'container with custom css class');
|
164 | deepEqual(toolbar.lCont, toolbar.cont.querySelector('.left-cont-css'),
|
165 | 'left inner container with custom css class');
|
166 | deepEqual(toolbar.rCont, document.querySelector('.right-cont-css'),
|
167 | 'right inner container with custom css class');
|
168 | deepEqual(toolbar.cCont, document.querySelector('.center-cont-css'),
|
169 | 'middle inner container with custom css class');
|
170 | });
|
171 |
|
172 | module('External container');
|
173 | test('config with external container id', function() {
|
174 |
|
175 | tf.destroy();
|
176 | tf = new TableFilter('demo', {
|
177 | base_path: '../dist/tablefilter/',
|
178 | toolbar: {
|
179 | target_id: 'ext-cont'
|
180 | }
|
181 | });
|
182 |
|
183 |
|
184 | tf.init();
|
185 | var toolbar = tf.feature('toolbar');
|
186 |
|
187 |
|
188 | deepEqual(toolbar.cont, document.querySelector('#ext-cont').firstChild,
|
189 | 'external container element');
|
190 | });
|
191 |
|
192 | module('Grid-layout');
|
193 | test('config with grid-layout', function() {
|
194 |
|
195 | tf.destroy();
|
196 | tf = new TableFilter('demo', {
|
197 | base_path: '../dist/tablefilter/',
|
198 | grid_layout: true,
|
199 | toolbar: true
|
200 | });
|
201 |
|
202 |
|
203 | tf.init();
|
204 | var toolbar = tf.feature('toolbar');
|
205 |
|
206 |
|
207 | deepEqual(toolbar.cont, document.querySelector('.grd_inf'),
|
208 | 'container element with grid-layout mode');
|
209 | });
|
210 |
|
211 | module('tear-down');
|
212 | test('destroy TableFilter', function() {
|
213 |
|
214 | tf.destroy();
|
215 |
|
216 |
|
217 | deepEqual(tf.feature('toolbar').initialized, false, 'toolbar removed');
|
218 | });
|