2015-06-04 15:04:38 +02:00
|
|
|
(function(win, TableFilter){
|
|
|
|
|
|
|
|
var tf = new TableFilter('demo', {
|
|
|
|
base_path: '../dist/tablefilter/',
|
|
|
|
grid: false
|
|
|
|
});
|
|
|
|
tf.init();
|
|
|
|
|
|
|
|
module('Sanity checks');
|
|
|
|
test('No filters', function() {
|
|
|
|
deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
|
2017-01-23 03:55:09 +01:00
|
|
|
deepEqual(tf.fltGrid, false, 'fltGrid property set false');
|
2015-06-04 15:04:38 +02:00
|
|
|
deepEqual(tf.getFilterElement(0), null,
|
|
|
|
'No filter element for column 0');
|
2016-01-04 07:59:30 +01:00
|
|
|
deepEqual(tf.refRow, 1, 'Reference row index');
|
2015-06-04 15:04:38 +02:00
|
|
|
});
|
2017-01-23 03:55:09 +01:00
|
|
|
test('cannot filter table', function() {
|
|
|
|
// setup
|
|
|
|
var ct = 0;
|
|
|
|
tf.emitter.on(['before-filtering'], function() {
|
|
|
|
ct++;
|
|
|
|
});
|
|
|
|
|
|
|
|
// act
|
|
|
|
tf.filter();
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(ct, 0, 'Table not filtered');
|
|
|
|
});
|
|
|
|
test('cannot getFilterVlue', function() {
|
|
|
|
// act
|
|
|
|
var filterValue = tf.getFilterValue(1);
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(filterValue, undefined, 'Returned filter value: undefined');
|
|
|
|
});
|
|
|
|
test('cannot getFiltersValue', function() {
|
|
|
|
// act
|
|
|
|
var filtersValue = tf.getFiltersValue();
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(filtersValue, undefined, 'Returned filter values: undefined');
|
|
|
|
});
|
|
|
|
test('cannot getFilterId', function() {
|
|
|
|
// act
|
|
|
|
var filterId = tf.getFilterId(0);
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(filterId, undefined, 'Returned filter ID: undefined');
|
|
|
|
});
|
|
|
|
test('cannot getFiltersByType', function() {
|
|
|
|
// act
|
|
|
|
var filters = tf.getFiltersByType('input');
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(filters, undefined, 'Returned filters ID: undefined');
|
|
|
|
});
|
|
|
|
test('cannot setFilterValue', function() {
|
|
|
|
// setup
|
|
|
|
var getFilterElement = tf.getFilterElement;
|
|
|
|
var ct = 0;
|
|
|
|
tf.getFilterElement = function(){
|
|
|
|
ct++;
|
|
|
|
};
|
|
|
|
|
|
|
|
// act
|
|
|
|
tf.setFilterValue(1, 'hello');
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(ct, 0, 'getFilterElement method not called');
|
2015-06-04 15:04:38 +02:00
|
|
|
|
2017-01-23 03:55:09 +01:00
|
|
|
tf.getFilterElement = getFilterElement;
|
|
|
|
});
|
|
|
|
test('cannot clearFilters', function() {
|
|
|
|
// setup
|
|
|
|
var ct = 0;
|
|
|
|
tf.emitter.on(['before-clearing-filters'], function() {
|
|
|
|
ct++;
|
|
|
|
});
|
|
|
|
|
|
|
|
// act
|
|
|
|
tf.clearFilters();
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(ct, 0, 'Filters not cleared');
|
|
|
|
});
|
|
|
|
|
2017-01-24 04:06:29 +01:00
|
|
|
test('cannot _initNoFilters if there are filters', function() {
|
|
|
|
// setup
|
|
|
|
tf.fltGrid = true;
|
|
|
|
var getRowsNb = this.getRowsNb;
|
|
|
|
var ct = 0;
|
|
|
|
tf.getRowsNb = function(){
|
|
|
|
ct++;
|
|
|
|
};
|
|
|
|
|
|
|
|
// act
|
|
|
|
tf._initNoFilters();
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(ct, 0, '_initNoFilters not executed');
|
|
|
|
|
|
|
|
tf.getRowsNb = getRowsNb;
|
|
|
|
});
|
|
|
|
|
2017-01-23 03:55:09 +01:00
|
|
|
module('Paging on');
|
2015-06-04 15:04:38 +02:00
|
|
|
test('Paging with no filters', function() {
|
2017-01-23 03:55:09 +01:00
|
|
|
// setup
|
2015-06-04 15:04:38 +02:00
|
|
|
tf.destroy();
|
|
|
|
tf = null;
|
|
|
|
tf = new TableFilter('demo', {
|
|
|
|
base_path: '../dist/tablefilter/',
|
|
|
|
grid: false,
|
|
|
|
paging: true,
|
|
|
|
paging_length: 3
|
|
|
|
});
|
2017-01-23 03:55:09 +01:00
|
|
|
var ct = 0;
|
|
|
|
tf.emitter.on(['row-validated'], function() {
|
|
|
|
ct++;
|
|
|
|
});
|
|
|
|
|
|
|
|
// act
|
2015-06-04 15:04:38 +02:00
|
|
|
tf.init();
|
|
|
|
deepEqual(tf.getFilterElement(4), null,
|
|
|
|
'No filter element for column 4');
|
2017-01-23 03:55:09 +01:00
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(tf.fltGrid, false, 'fltGrid property set false');
|
2016-01-04 07:59:30 +01:00
|
|
|
deepEqual(tf.refRow, 1, 'Reference row index');
|
2017-01-23 03:55:09 +01:00
|
|
|
deepEqual(ct, 0, 'tf.validateAllRows not called on Paging init');
|
2015-06-04 15:04:38 +02:00
|
|
|
});
|
|
|
|
|
2017-01-23 03:55:09 +01:00
|
|
|
module('Grid-layout on');
|
2015-06-04 15:04:38 +02:00
|
|
|
test('Grid layout with no filters', function() {
|
2017-01-23 03:55:09 +01:00
|
|
|
// setup
|
2015-06-04 15:04:38 +02:00
|
|
|
tf.destroy();
|
|
|
|
tf = null;
|
|
|
|
tf = new TableFilter('demo', {
|
|
|
|
base_path: '../dist/tablefilter/',
|
|
|
|
col_width: ['100px','100px','100px','100px','100px'],
|
2017-06-03 11:45:20 +02:00
|
|
|
grid_layout: {
|
2017-06-04 10:22:20 +02:00
|
|
|
filters: false
|
2017-06-03 11:45:20 +02:00
|
|
|
}
|
2015-06-04 15:04:38 +02:00
|
|
|
});
|
2017-01-23 03:55:09 +01:00
|
|
|
|
|
|
|
// act
|
2015-06-04 15:04:38 +02:00
|
|
|
tf.init();
|
2017-01-23 03:55:09 +01:00
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(tf.fltGrid, false, 'fltGrid property set false');
|
2015-06-04 15:04:38 +02:00
|
|
|
deepEqual(tf.getFilterElement(2), null,
|
|
|
|
'No filter element for column 2');
|
2016-01-04 07:59:30 +01:00
|
|
|
deepEqual(tf.refRow, 0, 'Reference row index');
|
2016-01-27 11:53:36 +01:00
|
|
|
|
|
|
|
tf.setFilterValue(1, 'Bris');
|
2016-02-22 08:14:58 +01:00
|
|
|
deepEqual(tf.getValidRows().length, 0,
|
|
|
|
'does not fail on setFilterValue');
|
2017-01-23 03:55:09 +01:00
|
|
|
|
|
|
|
// act
|
|
|
|
var filtersRow = tf.feature('gridLayout').createFiltersRow();
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(filtersRow.cells.length, 0, 'Filters row is empty');
|
2016-01-04 07:59:30 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
module('Tear-down');
|
|
|
|
test('TableFilter removed', function() {
|
|
|
|
tf.destroy();
|
2016-05-27 09:40:22 +02:00
|
|
|
deepEqual(tf.isInitialized(), false, 'Filters removed');
|
2015-06-04 15:04:38 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
})(window, TableFilter);
|