mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-06-14 11:46:42 +02:00
219 lines
6.4 KiB
JavaScript
219 lines
6.4 KiB
JavaScript
|
var tf = new TableFilter('demo', {
|
||
|
base_path: '../dist/tablefilter/',
|
||
|
rows_counter: true
|
||
|
});
|
||
|
tf.init();
|
||
|
|
||
|
var toolbar = tf.feature('toolbar');
|
||
|
|
||
|
module('Sanity checks');
|
||
|
test('toolbar component', function() {
|
||
|
// assert
|
||
|
notEqual(toolbar, null, 'toolbar instanciated');
|
||
|
equal(toolbar.contCssClass, 'inf', 'container css class');
|
||
|
equal(toolbar.lContCssClass, 'ldiv', 'left container css class');
|
||
|
equal(toolbar.cContCssClass, 'mdiv', 'middle container css class');
|
||
|
equal(toolbar.rContCssClass, 'rdiv', 'right container css class');
|
||
|
equal(toolbar.tgtId, null, 'external container id null');
|
||
|
notEqual(toolbar.cont, null, 'container created');
|
||
|
notEqual(toolbar.lCont, null, 'left inner container created');
|
||
|
notEqual(toolbar.cCont, null, 'middle inner container created');
|
||
|
notEqual(toolbar.rCont, null, 'right inner container created');
|
||
|
equal(toolbar.emitter.events['initializing-feature'].length, 1,
|
||
|
'subscribed to `initializing-feature` event');
|
||
|
equal(toolbar.emitter.events['initializing-extension'].length, 1,
|
||
|
'subscribed to `initializing-extension` event');
|
||
|
});
|
||
|
|
||
|
module('Feature interface');
|
||
|
test('Properties', function() {
|
||
|
deepEqual(toolbar.tf instanceof TableFilter, true, 'TableFilter instance');
|
||
|
deepEqual(toolbar.feature, 'toolbar', 'Feature name');
|
||
|
deepEqual(toolbar.enabled, true, 'Feature enabled');
|
||
|
deepEqual(toolbar.initialized, true, 'Feature enabled');
|
||
|
deepEqual(typeof toolbar.config, 'object', 'TF configuration object');
|
||
|
deepEqual(typeof toolbar.init, 'function', 'Feature init method');
|
||
|
deepEqual(typeof toolbar.destroy, 'function', 'Feature destroy method');
|
||
|
deepEqual(typeof toolbar.reset, 'function', 'Feature reset method');
|
||
|
deepEqual(typeof toolbar.enable, 'function', 'Feature enable method');
|
||
|
deepEqual(typeof toolbar.disable, 'function', 'Feature enable method');
|
||
|
deepEqual(typeof toolbar.isEnabled, 'function', 'Feature enable method');
|
||
|
});
|
||
|
test('Can destroy', function() {
|
||
|
toolbar.destroy();
|
||
|
deepEqual(toolbar.initialized, false, 'not initialised');
|
||
|
});
|
||
|
test('Can reset', function() {
|
||
|
toolbar.reset();
|
||
|
deepEqual(toolbar.enabled, true, 'enabled');
|
||
|
});
|
||
|
test('Can disable', function() {
|
||
|
toolbar.disable();
|
||
|
deepEqual(toolbar.enabled, false, 'disabled');
|
||
|
});
|
||
|
test('Can enable', function() {
|
||
|
toolbar.enable();
|
||
|
deepEqual(toolbar.enabled, true, 'enabled');
|
||
|
});
|
||
|
test('Can init', function() {
|
||
|
toolbar.destroy();
|
||
|
toolbar.enable();
|
||
|
toolbar.init();
|
||
|
deepEqual(toolbar.enabled, true, 'enabled');
|
||
|
});
|
||
|
test('Can check is enabled', function() {
|
||
|
toolbar.isEnabled();
|
||
|
deepEqual(toolbar.enabled, true, 'enabled');
|
||
|
});
|
||
|
|
||
|
module('Behaviour');
|
||
|
test('Does not init if initialised', function() {
|
||
|
// setup
|
||
|
var createContainer = toolbar.createContainer;
|
||
|
var hit = 0;
|
||
|
toolbar.createContainer = function() {
|
||
|
hit++;
|
||
|
};
|
||
|
|
||
|
// act
|
||
|
toolbar.init();
|
||
|
|
||
|
// assert
|
||
|
deepEqual(hit, 0, 'does not initialise');
|
||
|
|
||
|
toolbar.createContainer = createContainer;
|
||
|
});
|
||
|
|
||
|
test('Does not init if external', function() {
|
||
|
// setup
|
||
|
toolbar.initialized = false;
|
||
|
var createContainer = toolbar.createContainer;
|
||
|
var hit = 0;
|
||
|
toolbar.createContainer = function() {
|
||
|
hit++;
|
||
|
};
|
||
|
|
||
|
// act
|
||
|
toolbar.init(true);
|
||
|
|
||
|
// assert
|
||
|
deepEqual(hit, 0, 'does not initialise');
|
||
|
|
||
|
toolbar.createContainer = createContainer;
|
||
|
toolbar.initialized = true;
|
||
|
});
|
||
|
|
||
|
test('Can get container', function() {
|
||
|
// act
|
||
|
var result = toolbar.container('left');
|
||
|
|
||
|
// assert
|
||
|
deepEqual(result, toolbar.cont.querySelector('.ldiv'),
|
||
|
'left inner container');
|
||
|
});
|
||
|
|
||
|
test('Can get default container', function() {
|
||
|
// act
|
||
|
var result = toolbar.container();
|
||
|
|
||
|
// assert
|
||
|
deepEqual(result, toolbar.cont.querySelector('.rdiv'),
|
||
|
'left inner container');
|
||
|
});
|
||
|
|
||
|
test('Can get container with appended element', function() {
|
||
|
// act
|
||
|
var result = toolbar.container('center',
|
||
|
document.createElement('span')
|
||
|
.appendChild(document.createTextNode('test')));
|
||
|
|
||
|
// assert
|
||
|
deepEqual(result.firstChild, toolbar.cont.querySelector('.mdiv').firstChild,
|
||
|
'center inner container with appended element');
|
||
|
});
|
||
|
|
||
|
test('Can create container with css class', function() {
|
||
|
// act
|
||
|
var result = toolbar.createContainer(toolbar.cont, 'test');
|
||
|
|
||
|
// assert
|
||
|
deepEqual(result, toolbar.cont.querySelector('.test'),
|
||
|
'inner container created');
|
||
|
});
|
||
|
|
||
|
module('Custom css');
|
||
|
test('config with custom css', function() {
|
||
|
// setup
|
||
|
tf.destroy();
|
||
|
tf = new TableFilter('demo', {
|
||
|
base_path: '../dist/tablefilter/',
|
||
|
toolbar: {
|
||
|
container_css_class: 'cont-css',
|
||
|
left_cont_css_class: 'left-cont-css',
|
||
|
right_cont_css_class: 'right-cont-css',
|
||
|
center_cont_css_class: 'center-cont-css'
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// act
|
||
|
tf.init();
|
||
|
var toolbar = tf.feature('toolbar');
|
||
|
|
||
|
deepEqual(toolbar.cont, document.querySelector('.cont-css'),
|
||
|
'container with custom css class');
|
||
|
deepEqual(toolbar.lCont, toolbar.cont.querySelector('.left-cont-css'),
|
||
|
'left inner container with custom css class');
|
||
|
deepEqual(toolbar.rCont, document.querySelector('.right-cont-css'),
|
||
|
'right inner container with custom css class');
|
||
|
deepEqual(toolbar.cCont, document.querySelector('.center-cont-css'),
|
||
|
'middle inner container with custom css class');
|
||
|
});
|
||
|
|
||
|
module('External container');
|
||
|
test('config with external container id', function() {
|
||
|
// setup
|
||
|
tf.destroy();
|
||
|
tf = new TableFilter('demo', {
|
||
|
base_path: '../dist/tablefilter/',
|
||
|
toolbar: {
|
||
|
target_id: 'ext-cont'
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// act
|
||
|
tf.init();
|
||
|
var toolbar = tf.feature('toolbar');
|
||
|
|
||
|
// assert
|
||
|
deepEqual(toolbar.cont, document.querySelector('#ext-cont').firstChild,
|
||
|
'external container element');
|
||
|
});
|
||
|
|
||
|
module('Grid-layout');
|
||
|
test('config with grid-layout', function() {
|
||
|
// setup
|
||
|
tf.destroy();
|
||
|
tf = new TableFilter('demo', {
|
||
|
base_path: '../dist/tablefilter/',
|
||
|
grid_layout: true,
|
||
|
toolbar: true
|
||
|
});
|
||
|
|
||
|
// act
|
||
|
tf.init();
|
||
|
var toolbar = tf.feature('toolbar');
|
||
|
|
||
|
// assert
|
||
|
deepEqual(toolbar.cont, document.querySelector('.grd_inf'),
|
||
|
'container element with grid-layout mode');
|
||
|
});
|
||
|
|
||
|
module('tear-down');
|
||
|
test('destroy TableFilter', function() {
|
||
|
// act
|
||
|
tf.destroy();
|
||
|
|
||
|
// assert
|
||
|
deepEqual(tf.feature('toolbar').initialized, false, 'toolbar removed');
|
||
|
});
|