TableFilter/test/test-callbacks.js

59 lines
1.6 KiB
JavaScript

var tf = new TableFilter('demo', {
base_path: '../dist/tablefilter/',
on_filters_loaded: filtersLoadedTests
});
tf.init();
function filtersLoadedTests(){
tf.setFilterValue(0, 'Adelaide');
tf.setFilterValue(1, 'Perth');
tf.filter();
// issue 241: can filter table in filters loaded callback
module('TableFilter with filters loaded callback');
test('Can filter table on callback', function() {
deepEqual(tf.initialized, true, 'TableFilter is initialized');
deepEqual(tf.getValidRowsNb(), 1, 'Nb of filtered rows');
});
module('Tear-down');
test('Can destroy', function() {
tf.destroy();
deepEqual(tf.isInitialized(), false, 'Destroyed');
// After filter callback tests
afterFilterTests();
});
}
function afterFilterTests(){
tf = new TableFilter('demo', {
base_path: '../dist/tablefilter/',
col_1: 'checklist',
on_after_filter: afterFilter
});
var ct = 0;
tf.init();
// setup
var evObj = document.createEvent('HTMLEvents');
evObj.initEvent('click', true, true);
var flt1 = tf.getFilterElement(1);
// act
flt1.getElementsByTagName('li')[4].firstChild.dispatchEvent(evObj);
// issue 246: on_after_filter callback triggered twice from checklist filter
function afterFilter(){
ct++;
module('TableFilter with on_after_filter callback');
test('after filter callback fired once', function() {
// assert
deepEqual(ct, 1, 'Nb of times is fired');
deepEqual(tf.getFilterValue(1), ['Canberra'], 'Selected option');
});
}
};