2016-05-31 11:22:21 +02:00
|
|
|
(function (win, TableFilter) {
|
2016-03-11 06:55:42 +01:00
|
|
|
|
|
|
|
var tf = new TableFilter('demo', {
|
|
|
|
base_path: '../dist/tablefilter/',
|
|
|
|
grid_layout: true,
|
|
|
|
linked_filters: true,
|
|
|
|
col_0: 'select',
|
|
|
|
col_1: 'checklist'
|
|
|
|
});
|
|
|
|
|
|
|
|
tf.init();
|
|
|
|
triggerEvents();
|
|
|
|
|
|
|
|
module('Sanity checks');
|
2016-05-31 11:22:21 +02:00
|
|
|
test('Linked filters feature', function () {
|
2016-03-11 06:55:42 +01:00
|
|
|
deepEqual(tf instanceof TableFilter, true, 'TableFilter instantiated');
|
|
|
|
deepEqual(tf.linkedFilters, true, 'Linked filters enabled');
|
|
|
|
});
|
|
|
|
|
|
|
|
function triggerEvents() {
|
2016-07-02 06:06:12 +02:00
|
|
|
tf.emitter.on(['after-populating-filter'], checkFilters);
|
|
|
|
var flt0 = tf.getFilterElement(0);
|
|
|
|
var flt1 = tf.getFilterElement(1);
|
2016-03-11 06:55:42 +01:00
|
|
|
|
|
|
|
var evObj = document.createEvent('HTMLEvents');
|
|
|
|
evObj.initEvent('change', true, true);
|
|
|
|
|
2016-07-02 06:06:12 +02:00
|
|
|
var evObj1 = document.createEvent('HTMLEvents');
|
|
|
|
evObj1.initEvent('click', false, true);
|
|
|
|
|
2016-03-11 06:55:42 +01:00
|
|
|
tf.setFilterValue(0, 'Sydney');
|
|
|
|
flt0.dispatchEvent(evObj);
|
|
|
|
tf.setFilterValue(1, 'Adelaide');
|
2016-07-02 06:06:12 +02:00
|
|
|
flt1.querySelectorAll('input')[1].dispatchEvent(evObj1);
|
2016-03-11 06:55:42 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
function checkFilters(tf, colIndex, flt) {
|
|
|
|
module('behaviour');
|
2016-05-31 11:22:21 +02:00
|
|
|
test('Can filter', function () {
|
|
|
|
if (colIndex === 0) {
|
2016-03-11 06:55:42 +01:00
|
|
|
deepEqual(flt.options.length, 2, 'Filter 0 options number');
|
|
|
|
}
|
2016-05-31 11:22:21 +02:00
|
|
|
if (colIndex === 1) {
|
2016-03-11 06:55:42 +01:00
|
|
|
deepEqual(flt.getElementsByTagName('li').length, 2,
|
|
|
|
'Filter 1 options number');
|
|
|
|
testClearFilters();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// Tests for https://github.com/koalyptus/TableFilter/pull/42 issue
|
|
|
|
function testClearFilters() {
|
2016-05-31 11:22:21 +02:00
|
|
|
test('Check clear filters functionality', function () {
|
2016-03-11 06:55:42 +01:00
|
|
|
tf.clearFilters();
|
|
|
|
|
|
|
|
deepEqual(tf.getFilterableRowsNb(), 7,
|
2016-07-02 06:43:07 +02:00
|
|
|
'Nb of filterable rows after filters are cleared');
|
2016-03-11 06:55:42 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
testDestroy();
|
|
|
|
}
|
|
|
|
|
|
|
|
function testDestroy() {
|
2016-05-31 11:22:21 +02:00
|
|
|
test('Tear down', function () {
|
2016-03-11 06:55:42 +01:00
|
|
|
tf.destroy();
|
|
|
|
|
2016-05-27 09:40:22 +02:00
|
|
|
deepEqual(tf.isInitialized(), false, 'Filters removed');
|
2016-03-11 06:55:42 +01:00
|
|
|
});
|
|
|
|
tf.emitter.off(['after-populating-filter'], checkFilters);
|
|
|
|
}
|
|
|
|
|
|
|
|
})(window, TableFilter);
|