mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-06-17 05:06:49 +02:00
130 lines
3.6 KiB
JavaScript
130 lines
3.6 KiB
JavaScript
(function(win, TableFilter){
|
|
var tf = new TableFilter('demo', {
|
|
base_path: '../dist/tablefilter/',
|
|
exclude_rows: [4, 9]
|
|
});
|
|
tf.init();
|
|
|
|
module('Sanity checks');
|
|
test('Excluded rows', function() {
|
|
deepEqual(tf instanceof TableFilter, true, 'TableFilter type');
|
|
deepEqual(tf.hasExcludedRows, true, 'Has excluded rows');
|
|
deepEqual(tf.excludeRows, [4, 9], 'Excluded rows');
|
|
});
|
|
|
|
module('Behaviour');
|
|
test('for filtered table', function() {
|
|
tf.setFilterValue(0, 'Hello');
|
|
tf.filter();
|
|
var excludedRow1 = tf.dom().rows[4];
|
|
var excludedRow2 = tf.dom().rows[9];
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow1),
|
|
'',
|
|
'Row display for excludedRow1'
|
|
);
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow2),
|
|
'',
|
|
'Row display for excludedRow2'
|
|
);
|
|
});
|
|
|
|
test('after filters are cleared', function() {
|
|
tf.clearFilters();
|
|
var excludedRow1 = tf.dom().rows[4];
|
|
var excludedRow2 = tf.dom().rows[9];
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow1),
|
|
'',
|
|
'Row display for excludedRow1'
|
|
);
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow2),
|
|
'',
|
|
'Row display for excludedRow2'
|
|
);
|
|
});
|
|
|
|
test('setExcludeRows not called if no exclude rows', function() {
|
|
tf.hasExcludedRows = false;
|
|
var originalValidateRow = tf.validateRow;
|
|
var hit = 0;
|
|
tf.validateRow = function() { hit++; };
|
|
|
|
tf.setExcludeRows();
|
|
|
|
deepEqual(hit, 0, 'validateRow not called');
|
|
|
|
tf.validateRow = originalValidateRow;
|
|
|
|
testPaging();
|
|
});
|
|
|
|
function testPaging(){
|
|
tf.destroy();
|
|
tf = new TableFilter('demo', {
|
|
base_path: '../dist/tablefilter/',
|
|
exclude_rows: [4, 9],
|
|
paging: {
|
|
length: 2
|
|
}
|
|
});
|
|
tf.init();
|
|
var paging = tf.feature('paging');
|
|
|
|
module('Behaviour with paging');
|
|
test('for filtered table', function() {
|
|
tf.setFilterValue(0, 'Hello');
|
|
tf.filter();
|
|
var excludedRow1 = tf.dom().rows[4];
|
|
var excludedRow2 = tf.dom().rows[9];
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow1),
|
|
'',
|
|
'Row display for excludedRow1'
|
|
);
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow2),
|
|
'',
|
|
'Row display for excludedRow2'
|
|
);
|
|
});
|
|
|
|
test('after filters are cleared', function() {
|
|
tf.clearFilters();
|
|
var excludedRow1 = tf.dom().rows[4];
|
|
var excludedRow2 = tf.dom().rows[9];
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow1),
|
|
'none',
|
|
'Row display for excludedRow1'
|
|
);
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow2),
|
|
'none',
|
|
'Row display for excludedRow2'
|
|
);
|
|
});
|
|
|
|
test('after changing pagination page', function() {
|
|
paging.setPage(2);
|
|
var excludedRow1 = tf.dom().rows[4];
|
|
var excludedRow2 = tf.dom().rows[9];
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow1),
|
|
'',
|
|
'Row display for excludedRow1'
|
|
);
|
|
deepEqual(
|
|
tf.getRowDisplay(excludedRow2),
|
|
'none',
|
|
'Row display for excludedRow2'
|
|
);
|
|
|
|
tf.destroy();
|
|
});
|
|
}
|
|
|
|
})(window, TableFilter);
|