mirror of
https://github.com/Mottie/tablesorter.git
synced 2025-01-12 15:24:21 +00:00
Testing: re-align code
This commit is contained in:
parent
7f08f7dd1d
commit
121b134db9
@ -148,227 +148,226 @@ jQuery(function($){
|
||||
/************************************************
|
||||
Filter widget
|
||||
************************************************/
|
||||
QUnit.test( 'Filter: init', function(assert) {
|
||||
expect(6);
|
||||
|
||||
QUnit.test( 'Filter: init', function(assert) {
|
||||
expect(6);
|
||||
assert.equal( this.init, true, 'Init event' );
|
||||
assert.equal( this.$table.hasClass('hasFilters'), true, '`hasFilters` class applied' );
|
||||
|
||||
assert.equal( this.init, true, 'Init event' );
|
||||
assert.equal( this.$table.hasClass('hasFilters'), true, '`hasFilters` class applied' );
|
||||
assert.equal( this.ts.filter.regex.child.test( this.c.cssChildRow ), true, 'child row regex check' );
|
||||
assert.equal( this.ts.filter.regex.filtered.test( this.wo.filter_filteredRow ), true, 'filtered row regex check' );
|
||||
// this includes check of headers option & referencing column by class
|
||||
assert.equal ( this.c.$table.find('.tablesorter-filter').eq(0).hasClass('disabled'), true, 'filter disabled & headers class name working' );
|
||||
|
||||
assert.equal( this.ts.filter.regex.child.test( this.c.cssChildRow ), true, 'child row regex check' );
|
||||
assert.equal( this.ts.filter.regex.filtered.test( this.wo.filter_filteredRow ), true, 'filtered row regex check' );
|
||||
// this includes check of headers option & referencing column by class
|
||||
assert.equal ( this.c.$table.find('.tablesorter-filter').eq(0).hasClass('disabled'), true, 'filter disabled & headers class name working' );
|
||||
assert.cacheCompare( this.table, 3, [ 12, 18, 13, 18 ], 'starting filter value on age column', true );
|
||||
});
|
||||
|
||||
assert.cacheCompare( this.table, 3, [ 12, 18, 13, 18 ], 'starting filter value on age column', true );
|
||||
QUnit.test( 'Filter column range', function(assert) {
|
||||
expect(10);
|
||||
var range = $.tablesorter.filter.findRange,
|
||||
c = { columns: 10 }; // psuedo table.config
|
||||
|
||||
assert.deepEqual( range( c, '6' ), [ 6 ], '6' );
|
||||
assert.deepEqual( range( c, '5, 6' ), [ 5,6 ], '5, 6' );
|
||||
assert.deepEqual( range( c, '5 - 6' ), [ 5,6 ], '5 - 6' );
|
||||
assert.deepEqual( range( c, '1-3,5-6,8' ), [ 1,2,3,5,6,8 ], '1-3,5-6,8' );
|
||||
assert.deepEqual( range( c, '6- 3, 2,4' ), [ 3,4,5,6,2,4 ], '6- 3,2,4 (dupes included)' );
|
||||
assert.deepEqual( range( c, '-1-3, 11' ), [ 1,2,3 ], '-1-3, 11 (negative & out of range ignored)' );
|
||||
assert.deepEqual( range( c, '8-12' ), [ 8,9 ], '8-12 (not out of range)' );
|
||||
assert.deepEqual( range( c, 'all' ), [ 0,1,2,3,4,5,6,7,8,9 ], 'all' );
|
||||
assert.deepEqual( range( c, 'any-text' ), [ 0,1,2,3,4,5,6,7,8,9 ], 'text with dash -> all columns' );
|
||||
assert.deepEqual( range( c, 'a-b-c,100' ), [ 0,1,2,3,4,5,6,7,8,9 ], 'text with dashes & commas -> all columns' );
|
||||
});
|
||||
|
||||
QUnit.test( 'Filter process filters', function(assert) {
|
||||
expect(2);
|
||||
var processFilters = this.ts.filter.processFilters,
|
||||
filters = [],
|
||||
results = [];
|
||||
filters[1] = 5, filters[2] = 'test', filters[3] = true, filters[4] = null;
|
||||
results[1] = '5', results[2] = 'test', results[3] = 'true', results[4] = null;
|
||||
|
||||
assert.deepEqual( processFilters( filters, true ), results );
|
||||
assert.deepEqual( processFilters( filters, false ), results );
|
||||
});
|
||||
|
||||
QUnit.test( 'Filter searches', function(assert) {
|
||||
var ts = this.ts,
|
||||
c = this.c,
|
||||
wo = this.wo,
|
||||
$table = this.$table,
|
||||
table = this.table;
|
||||
expect(33);
|
||||
|
||||
return QUnit.SequentialRunner(
|
||||
function(actions, assertions) {
|
||||
return QUnit.assertOnEvent($table, 'filterEnd', actions, assertions);
|
||||
}
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'e'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Peter', 'Bruce', 'Alex', 'Bruce Lee', 'Brenda Dexter', 'Dennis'], 'search regular', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '~bee'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Bruce Lee', 'Brenda Dexter'], 'search fuzzy', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '~piano'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Philip Aaron Wong'], 'search fuzzy2', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'john='], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['John'], 'search exact', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', 'a?s'], true ); },
|
||||
function(){ assert.cacheCompare( table, 2, ['Dumass', 'Evans'], 'search wildcard, one character (?)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', 'a*s'], true ); },
|
||||
function(){ assert.cacheCompare( table, 2, ['Dumass', 'Evans', 'McMasters'], 'search wildcard, multiple characters (*)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '/r$/'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Peter', 'Brenda Dexter'], 'search regex', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '>10'], true ); },
|
||||
function(){ assert.cacheCompare( table, 4, [42.29, 19.99, 15.89, 153.19, 14.19, 13.19, 55.2, 123, 22.09], 'search operator (>10)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '>100'], true ); },
|
||||
function(){ assert.cacheCompare( table, 4, [153.19, 123], 'search operator (>100); ensure search filtered gets cleared', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '', '>=20'], true ); },
|
||||
function(){ assert.cacheCompare( table, 5, [22, 20, 25, 44, 44], 'search operator (>=)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '', '<10'], true ); },
|
||||
function(){ assert.cacheCompare( table, 5, [5, 4], 'search operator (<10)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '', '<100'], true ); },
|
||||
function(){ assert.cacheCompare( table, 5, [22, 5, 18, 20, 25, 44, 44, 4, 14, 11, 15, 17], 'search operator (<100); ensure search filtered gets cleared', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '', '<=20'], true ); },
|
||||
function(){ assert.cacheCompare( table, 5, [5, 18, 20, 4, 14, 11, 15, 17], 'search operator (<=)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '!a'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Peter', 'John', 'Bruce', 'Jim', 'Bruce Lee', 'Dennis'], 'search not match', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '!aa'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Peter', 'John', 'Clark', 'Bruce', 'Alex', 'Jim', 'Bruce Lee', 'Brenda Dexter', 'Dennis', 'Martha'], 'search not match; ensure search filtered gets cleared', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'br && c'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Bruce', 'Bruce Lee'], 'search and match', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'br && cl'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark'], 'search and match; ensure search filtered gets cleared', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'c* && l && a'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Clark'], 'search "c* && l && a"', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'a && !o'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Clark', 'Alex', 'Brenda Dexter', 'Martha'], 'search "a && !o"', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '' , '>20 && <40'], true ); },
|
||||
function(){ assert.cacheCompare( table, 3, [25, 28, 33, 24, 22, 25], 'search ">20 && <40"', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '' , '<15 or >40'], true ); },
|
||||
function(){ assert.cacheCompare( table, 3, [12, 51, 45, 13, 65], 'search "<15 or >40"', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'alex|br*'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Bruce', 'Alex', 'Bruce Lee', 'Brenda Dexter'], 'search OR match', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '/(Alex|Aar'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, [], 'Partial OR match, but invalid regex', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '/(Alex && '], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, [], 'Partial AND match, and way messed up regex', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '5 - 10'], true ); },
|
||||
function(){ assert.cacheCompare( table, 4, [5.95, 9.99, 5.29], 'search range', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '5 - 100'], true ); },
|
||||
function(){ assert.cacheCompare( table, 4, [5.95, 42.29, 9.99, 19.99, 15.89, 5.29, 14.19, 13.19, 55.2, 22.09], 'search range; ensure search filtered gets cleared', true ); }
|
||||
).nextTask( // test filter_startsWith (false by default)
|
||||
function(){
|
||||
wo.filter_startsWith = false;
|
||||
ts.setFilters( table, ['', 'aa'], true );
|
||||
},
|
||||
function(){ assert.cacheCompare( table, 1, ['Philip Aaron Wong', 'Aaron'], 'search - filter_startsWith : false', true ); }
|
||||
).nextTask( // test filter_startsWith (false by default)
|
||||
function(){
|
||||
wo.filter_startsWith = true;
|
||||
c.$table.trigger('search', false);
|
||||
},
|
||||
function(){
|
||||
assert.cacheCompare( table, 1, ['Aaron'], 'search - filter_startsWith : true', true );
|
||||
wo.filter_startsWith = false;
|
||||
}
|
||||
).nextTask( // test filter_ignoreCase (true by default)
|
||||
function(){
|
||||
wo.filter_ignoreCase = false;
|
||||
c.$table.trigger('search', false);
|
||||
},
|
||||
function(){
|
||||
assert.cacheCompare( table, 1, [], 'search - filter_ignoreCase : false', true );
|
||||
wo.filter_ignoreCase = true;
|
||||
}
|
||||
).nextTask( // test filter-match class (added in the example code)
|
||||
function(){ ts.setFilters( table, ['', 'alex|br*|c'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Clark', 'Bruce', 'Alex', 'Bruce Lee', 'Brenda Dexter'], 'search - filter-match', true ); }
|
||||
).nextTask( // test filter-match class
|
||||
function(){
|
||||
c.$table.find('.tablesorter-header').eq(1).removeClass('filter-match');
|
||||
c.$table.trigger('search', false);
|
||||
},
|
||||
function(){ assert.cacheCompare( table, 1, ['Bruce', 'Alex'], 'search - filter-match removed', true ); }
|
||||
).nextTask( // filter reset
|
||||
function(){ c.$table.trigger('filterReset'); },
|
||||
function(){ assert.cacheCompare( table, 5, [22, 5, 18, 20, 25, 44, 44, 4, 14, 11, 15, '', 17], 'filterReset', true ); }
|
||||
).nextTask( // filter parsed class
|
||||
function(){
|
||||
wo.filter_startsWith = false;
|
||||
ts.setFilters( table, ['', '', '', '', '', '', '< 1/1/2001'], true );
|
||||
},
|
||||
function(){ assert.cacheCompare( table, 6, [ new Date('Oct 13, 2000 1:15 PM').getTime() ], 'search - filter-parsed', true ); }
|
||||
).promise();
|
||||
});
|
||||
|
||||
QUnit.test( 'Filter: function & selectSource', function(assert) {
|
||||
expect(3);
|
||||
|
||||
var $t, opts = [];
|
||||
$t = this.c.$table.find('.tablesorter-filter-row select:last');
|
||||
assert.equal ( $t.length !== 0, true, 'filter_functions: true working' );
|
||||
|
||||
this.c.$table.find('.tablesorter-filter-row select:first option').each(function(){
|
||||
opts.push( $.trim( $(this).text() ) );
|
||||
});
|
||||
assert.equal ( 'len=' + opts.length + ',' + opts.join(''), 'len=3,< 10> 10', 'filter_functions set' );
|
||||
|
||||
QUnit.test( 'Filter column range', function(assert) {
|
||||
expect(10);
|
||||
var range = $.tablesorter.filter.findRange,
|
||||
c = { columns: 10 }; // psuedo table.config
|
||||
|
||||
assert.deepEqual( range( c, '6' ), [ 6 ], '6' );
|
||||
assert.deepEqual( range( c, '5, 6' ), [ 5,6 ], '5, 6' );
|
||||
assert.deepEqual( range( c, '5 - 6' ), [ 5,6 ], '5 - 6' );
|
||||
assert.deepEqual( range( c, '1-3,5-6,8' ), [ 1,2,3,5,6,8 ], '1-3,5-6,8' );
|
||||
assert.deepEqual( range( c, '6- 3, 2,4' ), [ 3,4,5,6,2,4 ], '6- 3,2,4 (dupes included)' );
|
||||
assert.deepEqual( range( c, '-1-3, 11' ), [ 1,2,3 ], '-1-3, 11 (negative & out of range ignored)' );
|
||||
assert.deepEqual( range( c, '8-12' ), [ 8,9 ], '8-12 (not out of range)' );
|
||||
assert.deepEqual( range( c, 'all' ), [ 0,1,2,3,4,5,6,7,8,9 ], 'all' );
|
||||
assert.deepEqual( range( c, 'any-text' ), [ 0,1,2,3,4,5,6,7,8,9 ], 'text with dash -> all columns' );
|
||||
assert.deepEqual( range( c, 'a-b-c,100' ), [ 0,1,2,3,4,5,6,7,8,9 ], 'text with dashes & commas -> all columns' );
|
||||
opts = [];
|
||||
$t.find('option').each(function(){
|
||||
opts.push( $.trim( $(this).text() ) );
|
||||
});
|
||||
assert.equal ( 'len=' + opts.length + ',' + opts.join(''), 'len=4,abcdefzyx', 'filter_selectSource set' );
|
||||
});
|
||||
|
||||
QUnit.test( 'Filter process filters', function(assert) {
|
||||
expect(2);
|
||||
var processFilters = this.ts.filter.processFilters,
|
||||
filters = [],
|
||||
results = [];
|
||||
filters[1] = 5, filters[2] = 'test', filters[3] = true, filters[4] = null;
|
||||
results[1] = '5', results[2] = 'test', results[3] = 'true', results[4] = null;
|
||||
QUnit.test( 'Filter: select & matching (table2)', function(assert) {
|
||||
var self = this,
|
||||
ts = this.ts,
|
||||
$table = this.$table,
|
||||
table = this.table;
|
||||
expect(3);
|
||||
|
||||
assert.deepEqual( processFilters( filters, true ), results );
|
||||
assert.deepEqual( processFilters( filters, false ), results );
|
||||
});
|
||||
|
||||
QUnit.test( 'Filter searches', function(assert) {
|
||||
var ts = this.ts,
|
||||
c = this.c,
|
||||
wo = this.wo,
|
||||
$table = this.$table,
|
||||
table = this.table;
|
||||
expect(33);
|
||||
|
||||
return QUnit.SequentialRunner(
|
||||
function(actions, assertions) {
|
||||
return QUnit.assertOnEvent($table, 'filterEnd', actions, assertions);
|
||||
}
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'e'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Peter', 'Bruce', 'Alex', 'Bruce Lee', 'Brenda Dexter', 'Dennis'], 'search regular', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '~bee'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Bruce Lee', 'Brenda Dexter'], 'search fuzzy', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '~piano'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Philip Aaron Wong'], 'search fuzzy2', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'john='], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['John'], 'search exact', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', 'a?s'], true ); },
|
||||
function(){ assert.cacheCompare( table, 2, ['Dumass', 'Evans'], 'search wildcard, one character (?)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', 'a*s'], true ); },
|
||||
function(){ assert.cacheCompare( table, 2, ['Dumass', 'Evans', 'McMasters'], 'search wildcard, multiple characters (*)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '/r$/'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Peter', 'Brenda Dexter'], 'search regex', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '>10'], true ); },
|
||||
function(){ assert.cacheCompare( table, 4, [42.29, 19.99, 15.89, 153.19, 14.19, 13.19, 55.2, 123, 22.09], 'search operator (>10)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '>100'], true ); },
|
||||
function(){ assert.cacheCompare( table, 4, [153.19, 123], 'search operator (>100); ensure search filtered gets cleared', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '', '>=20'], true ); },
|
||||
function(){ assert.cacheCompare( table, 5, [22, 20, 25, 44, 44], 'search operator (>=)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '', '<10'], true ); },
|
||||
function(){ assert.cacheCompare( table, 5, [5, 4], 'search operator (<10)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '', '<100'], true ); },
|
||||
function(){ assert.cacheCompare( table, 5, [22, 5, 18, 20, 25, 44, 44, 4, 14, 11, 15, 17], 'search operator (<100); ensure search filtered gets cleared', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '', '<=20'], true ); },
|
||||
function(){ assert.cacheCompare( table, 5, [5, 18, 20, 4, 14, 11, 15, 17], 'search operator (<=)', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '!a'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Peter', 'John', 'Bruce', 'Jim', 'Bruce Lee', 'Dennis'], 'search not match', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '!aa'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Peter', 'John', 'Clark', 'Bruce', 'Alex', 'Jim', 'Bruce Lee', 'Brenda Dexter', 'Dennis', 'Martha'], 'search not match; ensure search filtered gets cleared', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'br && c'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Bruce', 'Bruce Lee'], 'search and match', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'br && cl'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark'], 'search and match; ensure search filtered gets cleared', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'c* && l && a'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Clark'], 'search "c* && l && a"', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'a && !o'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Clark', 'Alex', 'Brenda Dexter', 'Martha'], 'search "a && !o"', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '' , '>20 && <40'], true ); },
|
||||
function(){ assert.cacheCompare( table, 3, [25, 28, 33, 24, 22, 25], 'search ">20 && <40"', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '' , '<15 or >40'], true ); },
|
||||
function(){ assert.cacheCompare( table, 3, [12, 51, 45, 13, 65], 'search "<15 or >40"', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', 'alex|br*'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Bruce', 'Alex', 'Bruce Lee', 'Brenda Dexter'], 'search OR match', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '/(Alex|Aar'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, [], 'Partial OR match, but invalid regex', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '/(Alex && '], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, [], 'Partial AND match, and way messed up regex', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '5 - 10'], true ); },
|
||||
function(){ assert.cacheCompare( table, 4, [5.95, 9.99, 5.29], 'search range', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '', '', '', '5 - 100'], true ); },
|
||||
function(){ assert.cacheCompare( table, 4, [5.95, 42.29, 9.99, 19.99, 15.89, 5.29, 14.19, 13.19, 55.2, 22.09], 'search range; ensure search filtered gets cleared', true ); }
|
||||
).nextTask( // test filter_startsWith (false by default)
|
||||
function(){
|
||||
wo.filter_startsWith = false;
|
||||
ts.setFilters( table, ['', 'aa'], true );
|
||||
},
|
||||
function(){ assert.cacheCompare( table, 1, ['Philip Aaron Wong', 'Aaron'], 'search - filter_startsWith : false', true ); }
|
||||
).nextTask( // test filter_startsWith (false by default)
|
||||
function(){
|
||||
wo.filter_startsWith = true;
|
||||
c.$table.trigger('search', false);
|
||||
},
|
||||
function(){
|
||||
assert.cacheCompare( table, 1, ['Aaron'], 'search - filter_startsWith : true', true );
|
||||
wo.filter_startsWith = false;
|
||||
}
|
||||
).nextTask( // test filter_ignoreCase (true by default)
|
||||
function(){
|
||||
wo.filter_ignoreCase = false;
|
||||
c.$table.trigger('search', false);
|
||||
},
|
||||
function(){
|
||||
assert.cacheCompare( table, 1, [], 'search - filter_ignoreCase : false', true );
|
||||
wo.filter_ignoreCase = true;
|
||||
}
|
||||
).nextTask( // test filter-match class (added in the example code)
|
||||
function(){ ts.setFilters( table, ['', 'alex|br*|c'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, ['Brandon Clark', 'Clark', 'Bruce', 'Alex', 'Bruce Lee', 'Brenda Dexter'], 'search - filter-match', true ); }
|
||||
).nextTask( // test filter-match class
|
||||
function(){
|
||||
c.$table.find('.tablesorter-header').eq(1).removeClass('filter-match');
|
||||
c.$table.trigger('search', false);
|
||||
},
|
||||
function(){ assert.cacheCompare( table, 1, ['Bruce', 'Alex'], 'search - filter-match removed', true ); }
|
||||
).nextTask( // filter reset
|
||||
function(){ c.$table.trigger('filterReset'); },
|
||||
function(){ assert.cacheCompare( table, 5, [22, 5, 18, 20, 25, 44, 44, 4, 14, 11, 15, '', 17], 'filterReset', true ); }
|
||||
).nextTask( // filter parsed class
|
||||
function(){
|
||||
wo.filter_startsWith = false;
|
||||
ts.setFilters( table, ['', '', '', '', '', '', '< 1/1/2001'], true );
|
||||
},
|
||||
function(){ assert.cacheCompare( table, 6, [ new Date('Oct 13, 2000 1:15 PM').getTime() ], 'search - filter-parsed', true ); }
|
||||
).promise();
|
||||
});
|
||||
|
||||
QUnit.test( 'Filter: function & selectSource', function(assert) {
|
||||
expect(3);
|
||||
|
||||
var $t, opts = [];
|
||||
$t = this.c.$table.find('.tablesorter-filter-row select:last');
|
||||
assert.equal ( $t.length !== 0, true, 'filter_functions: true working' );
|
||||
|
||||
this.c.$table.find('.tablesorter-filter-row select:first option').each(function(){
|
||||
opts.push( $.trim( $(this).text() ) );
|
||||
});
|
||||
assert.equal ( 'len=' + opts.length + ',' + opts.join(''), 'len=3,< 10> 10', 'filter_functions set' );
|
||||
|
||||
opts = [];
|
||||
$t.find('option').each(function(){
|
||||
opts.push( $.trim( $(this).text() ) );
|
||||
});
|
||||
assert.equal ( 'len=' + opts.length + ',' + opts.join(''), 'len=4,abcdefzyx', 'filter_selectSource set' );
|
||||
});
|
||||
|
||||
QUnit.test( 'Filter: select & matching (table2)', function(assert) {
|
||||
var self = this,
|
||||
ts = this.ts,
|
||||
$table = this.$table,
|
||||
table = this.table;
|
||||
expect(3);
|
||||
|
||||
return QUnit.SequentialRunner(
|
||||
function(actions, assertions) {
|
||||
return QUnit.assertOnEvent($table, 'filterEnd', actions, assertions);
|
||||
}
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['abc 1'], true ); },
|
||||
function(){ assert.cacheCompare( table, 0, ['abc 1'], 'select exact search', true ); }
|
||||
).nextTask(
|
||||
function(){
|
||||
$table.find( '.filter-select' ).eq(0).addClass( 'filter-match' );
|
||||
ts.setFilters( table, [ 'abc 1' ], true ); },
|
||||
function(){ assert.cacheCompare( table, 0, ['abc 1', 'abc 11', 'ABC 10'], 'select match search', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '1'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, [ 1, 111, 123, 155], 'select match seach', true ); }
|
||||
).promise();
|
||||
});
|
||||
return QUnit.SequentialRunner(
|
||||
function(actions, assertions) {
|
||||
return QUnit.assertOnEvent($table, 'filterEnd', actions, assertions);
|
||||
}
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['abc 1'], true ); },
|
||||
function(){ assert.cacheCompare( table, 0, ['abc 1'], 'select exact search', true ); }
|
||||
).nextTask(
|
||||
function(){
|
||||
$table.find( '.filter-select' ).eq(0).addClass( 'filter-match' );
|
||||
ts.setFilters( table, [ 'abc 1' ], true ); },
|
||||
function(){ assert.cacheCompare( table, 0, ['abc 1', 'abc 11', 'ABC 10'], 'select match search', true ); }
|
||||
).nextTask(
|
||||
function(){ ts.setFilters( table, ['', '1'], true ); },
|
||||
function(){ assert.cacheCompare( table, 1, [ 1, 111, 123, 155], 'select match seach', true ); }
|
||||
).promise();
|
||||
});
|
||||
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user