TableFilter/test/test-excluded-rows.js

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);