var tf = new TableFilter('demo', { base_path: '../dist/tablefilter/', rows_counter: true, allow_uneven_rows: 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'); // });