2014-11-15 09:39:10 +01:00
|
|
|
|
2015-05-10 13:12:31 +02:00
|
|
|
var id = function (id){ return document.getElementById(id); };
|
2015-06-09 10:46:08 +02:00
|
|
|
var table = id('demo');
|
2015-05-10 13:12:31 +02:00
|
|
|
var totRowIndex = table.getElementsByTagName('tr').length;
|
2014-11-15 09:39:10 +01:00
|
|
|
|
2015-05-10 13:12:31 +02:00
|
|
|
var tf = new TableFilter('demo', {
|
2015-05-15 12:37:27 +02:00
|
|
|
base_path: '../dist/tablefilter/',
|
2016-10-07 14:08:13 +02:00
|
|
|
rows_always_visible: [
|
2016-10-08 02:50:34 +02:00
|
|
|
totRowIndex-6,
|
|
|
|
totRowIndex-5,
|
|
|
|
totRowIndex-4,
|
|
|
|
totRowIndex-3,
|
2016-10-07 14:08:13 +02:00
|
|
|
totRowIndex-2,
|
|
|
|
totRowIndex-1,
|
|
|
|
totRowIndex,
|
|
|
|
],
|
2015-06-07 17:31:15 +02:00
|
|
|
extensions: [{
|
|
|
|
name: 'colOps',
|
2016-10-07 14:08:13 +02:00
|
|
|
id: [
|
|
|
|
'sum1', 'sum2',
|
2016-10-08 02:50:34 +02:00
|
|
|
'mean1', 'mean2',
|
2016-10-07 14:08:13 +02:00
|
|
|
'min1', 'min2',
|
2016-10-08 02:50:34 +02:00
|
|
|
'max1', 'max2',
|
|
|
|
'median1', 'median2',
|
|
|
|
'q1-1', 'q1-2',
|
|
|
|
'q3-1', 'q3-2'
|
2016-10-07 14:08:13 +02:00
|
|
|
],
|
|
|
|
col: [
|
2016-10-08 02:50:34 +02:00
|
|
|
2, 3,
|
|
|
|
2, 3,
|
|
|
|
2, 3,
|
|
|
|
2, 3,
|
2016-10-07 14:08:13 +02:00
|
|
|
2, 3,
|
|
|
|
2, 3,
|
|
|
|
2, 3
|
|
|
|
],
|
|
|
|
operation: [
|
2016-10-08 02:50:34 +02:00
|
|
|
'sum', 'sum',
|
|
|
|
'mean', 'mean',
|
2016-10-07 14:08:13 +02:00
|
|
|
'min', 'min',
|
2016-10-08 02:50:34 +02:00
|
|
|
'max', 'max',
|
|
|
|
'median', 'median',
|
|
|
|
'q1', 'q1',
|
|
|
|
'q3', 'q3'
|
2016-10-07 14:08:13 +02:00
|
|
|
],
|
|
|
|
write_method: [
|
2016-10-08 02:50:34 +02:00
|
|
|
'innerhtml', 'innerhtml',
|
|
|
|
'innerhtml', 'innerhtml',
|
|
|
|
'innerhtml', 'innerhtml',
|
|
|
|
'innerhtml', 'innerhtml',
|
2016-10-07 14:08:13 +02:00
|
|
|
'innerhtml', 'innerhtml',
|
|
|
|
'innerhtml', 'innerhtml',
|
|
|
|
'innerhtml', 'innerhtml'
|
|
|
|
],
|
|
|
|
exclude_row: [
|
2016-10-08 02:50:34 +02:00
|
|
|
totRowIndex-6,
|
|
|
|
totRowIndex-5,
|
|
|
|
totRowIndex-4,
|
|
|
|
totRowIndex-3,
|
2016-10-07 14:08:13 +02:00
|
|
|
totRowIndex-2,
|
|
|
|
totRowIndex-1,
|
|
|
|
totRowIndex
|
|
|
|
],
|
2016-10-08 02:50:34 +02:00
|
|
|
decimal_precision: [
|
|
|
|
0, 2,
|
|
|
|
0, 2,
|
|
|
|
0, 2,
|
|
|
|
0, 2,
|
|
|
|
0, 2,
|
|
|
|
0, 2,
|
|
|
|
0, 2
|
|
|
|
],
|
2016-10-07 14:08:13 +02:00
|
|
|
tot_row_index: [
|
2016-10-08 02:50:34 +02:00
|
|
|
totRowIndex-6, totRowIndex-6,
|
|
|
|
totRowIndex-5, totRowIndex-5,
|
|
|
|
totRowIndex-4, totRowIndex-4,
|
|
|
|
totRowIndex-3, totRowIndex-3,
|
2016-10-07 14:08:13 +02:00
|
|
|
totRowIndex-2, totRowIndex-2,
|
|
|
|
totRowIndex-1, totRowIndex-1,
|
|
|
|
totRowIndex, totRowIndex
|
|
|
|
]
|
2015-06-07 17:31:15 +02:00
|
|
|
}]
|
2015-05-10 13:12:31 +02:00
|
|
|
});
|
|
|
|
tf.init();
|
2014-11-15 09:39:10 +01:00
|
|
|
|
2015-05-10 13:12:31 +02:00
|
|
|
module('Sanity checks');
|
2015-06-07 17:31:15 +02:00
|
|
|
test('Column operations', function() {
|
2015-07-03 09:44:25 +02:00
|
|
|
var colOps = tf.extension('colOps');
|
2015-06-07 17:31:15 +02:00
|
|
|
deepEqual(typeof colOps, 'object', 'ColOps instanciated');
|
2015-05-10 13:12:31 +02:00
|
|
|
equal(id('sum1').innerHTML, 9911, 'Sum result');
|
2016-10-08 02:50:34 +02:00
|
|
|
equal(id('sum2').innerHTML, 11.85, 'Sum result');
|
|
|
|
equal(id('mean1').innerHTML, 1416, 'Mean result');
|
|
|
|
equal(id('mean2').innerHTML, 1.69, 'Mean result');
|
|
|
|
equal(id('min1').innerHTML, 286, 'Min result');
|
2016-10-07 14:08:13 +02:00
|
|
|
equal(id('min2').innerHTML, 0.60, 'Min result');
|
2016-10-08 02:50:34 +02:00
|
|
|
equal(id('max1').innerHTML, 2781, 'Max result');
|
|
|
|
equal(id('max2').innerHTML, 3.10, 'Max result');
|
|
|
|
equal(id('median1').innerHTML, 1412, 'Median result');
|
|
|
|
equal(id('median2').innerHTML, 1.50, 'Median result');
|
|
|
|
equal(id('q1-1').innerHTML, 872, 'Q1 result');
|
|
|
|
equal(id('q1-2').innerHTML, 1.10, 'Q1 result');
|
|
|
|
equal(id('q3-1').innerHTML, 2045, 'Q3 result');
|
|
|
|
equal(id('q3-2').innerHTML, 2.15, 'Q3 result');
|
2017-01-12 13:42:58 +01:00
|
|
|
tf.clearFilters();
|
2015-05-10 13:12:31 +02:00
|
|
|
});
|
2015-06-07 17:31:15 +02:00
|
|
|
|
|
|
|
module('Behaviour checks');
|
|
|
|
test('Column operations after filtering', function() {
|
|
|
|
tf.setFilterValue(0, 'syd');
|
|
|
|
tf.filter();
|
|
|
|
equal(id('sum1').innerHTML, 3552, 'Sum result');
|
2016-10-08 02:50:34 +02:00
|
|
|
equal(id('sum2').innerHTML, 4.60, 'Sum result');
|
|
|
|
equal(id('mean1').innerHTML, 888, 'Mean result');
|
|
|
|
equal(id('mean2').innerHTML, 1.15, 'Mean result');
|
|
|
|
equal(id('min1').innerHTML, 286, 'Min result');
|
2016-10-07 14:08:13 +02:00
|
|
|
equal(id('min2').innerHTML, 0.60, 'Min result');
|
2016-10-08 02:50:34 +02:00
|
|
|
equal(id('max1').innerHTML, 1412, 'Max result');
|
|
|
|
equal(id('max2').innerHTML, 1.50, 'Max result');
|
|
|
|
equal(id('median1').innerHTML, 927, 'Median result');
|
|
|
|
equal(id('median2').innerHTML, 1.25, 'Median result');
|
|
|
|
equal(id('q1-1').innerHTML, 579, 'Q1 result');
|
|
|
|
equal(id('q1-2').innerHTML, 0.85, 'Q1 result');
|
|
|
|
equal(id('q3-1').innerHTML, 1197, 'Q3 result');
|
|
|
|
equal(id('q3-2').innerHTML, 1.45, 'Q3 result');
|
2015-06-07 17:31:15 +02:00
|
|
|
tf.clearFilters();
|
|
|
|
});
|
|
|
|
|
2017-02-11 13:47:40 +01:00
|
|
|
test('Can make column calculations', function() {
|
|
|
|
// setup
|
|
|
|
var colOps = tf.extension('colOps');
|
|
|
|
|
|
|
|
// act
|
|
|
|
var result0 = colOps.columnCalc(2, 'mean', 1);
|
|
|
|
var result1 = colOps.columnCalc(2, 'min', 2);
|
|
|
|
var result2 = colOps.columnCalc(2, 'max', 0);
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(result0, 1415.9, 'columnCalc mean');
|
|
|
|
deepEqual(result1, 286.00, 'columnCalc min');
|
|
|
|
deepEqual(result2, 2781, 'columnCalc max');
|
|
|
|
});
|
|
|
|
|
2017-03-18 00:20:51 +01:00
|
|
|
test('Can make column calculations with formated results', function() {
|
|
|
|
// setup
|
|
|
|
var colOps = tf.extension('colOps');
|
|
|
|
colOps.formatResults[2] = { suffix: ' Km' };
|
|
|
|
colOps.formatResults[4] = { suffix: ' Km' };
|
|
|
|
colOps.formatResults[6] = { suffix: ' Km' };
|
|
|
|
tf.colTypes[2] = { type: 'formatted-number', decimal: '.', thousands: ',' };
|
|
|
|
|
|
|
|
// act
|
|
|
|
colOps.calcAll();
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(id('mean1').innerHTML, '1,416 Km', 'Formatted mean result');
|
|
|
|
deepEqual(id('min1').innerHTML, '286 Km', 'Formatted min result');
|
|
|
|
deepEqual(id('max1').innerHTML, '2,781 Km', 'Formatted max result');
|
|
|
|
|
|
|
|
colOps.formatResults[2] = undefined;
|
|
|
|
colOps.formatResults[4] = undefined;
|
|
|
|
colOps.formatResults[6] = undefined;
|
|
|
|
tf.colTypes[2] = undefined;
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Can configure result format', function() {
|
|
|
|
// setup
|
|
|
|
var colOps = tf.extension('colOps');
|
|
|
|
var format = { prefix: '$', suffix: '/item' };
|
|
|
|
|
|
|
|
// act
|
|
|
|
var format = colOps.configureFormat(2, format);
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(format.prefix, '$', 'prefix');
|
|
|
|
deepEqual(format.suffix, '/item', 'suffix');
|
|
|
|
deepEqual(format.decimal, '', 'decimal separator');
|
|
|
|
deepEqual(format.integerSeparator, '', 'thousands separator');
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Can configure result format for formatted number column', function() {
|
|
|
|
// setup
|
|
|
|
var colOps = tf.extension('colOps');
|
|
|
|
var format = { prefix: '$', suffix: '/item' };
|
|
|
|
tf.colTypes = [null, null, null, null, null];
|
|
|
|
tf.colTypes[3] = { type: 'formatted-number', decimal: ',', thousands: '.' };
|
|
|
|
|
|
|
|
// act
|
|
|
|
var format = colOps.configureFormat(3, format);
|
|
|
|
|
|
|
|
// assert
|
|
|
|
deepEqual(format.prefix, '$', 'prefix');
|
|
|
|
deepEqual(format.suffix, '/item', 'suffix');
|
|
|
|
deepEqual(format.decimal, ',', 'decimal separator');
|
|
|
|
deepEqual(format.integerSeparator, '.', 'thousands separator');
|
|
|
|
tf.colTypes[3] = undefined;
|
|
|
|
});
|
|
|
|
|
2017-02-03 13:58:50 +01:00
|
|
|
module('Tear-down');
|
|
|
|
test('can destroy', function() {
|
2016-10-08 02:50:34 +02:00
|
|
|
tf.destroy();
|
2017-02-03 13:58:50 +01:00
|
|
|
deepEqual(tf.isInitialized(), false, 'Filters removed');
|
|
|
|
});
|