-begin adding datagrids

This commit is contained in:
mkonecny 2011-01-21 18:14:59 -05:00
parent 8d5aea0d14
commit 6553663051
249 changed files with 31982 additions and 11 deletions

View file

@ -0,0 +1,44 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "iDraw - check that iDraw increments for each draw" );
$(document).ready( function () {
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"After first draw, iDraw is 1",
null,
function () { return oSettings.iDraw == 1; }
);
oTest.fnWaitTest(
"After second draw, iDraw is 2",
function () { oTable.fnDraw() },
function () { return oSettings.iDraw == 2; }
);
oTest.fnWaitTest(
"After sort",
function () { oTable.fnSort([[1,'asc']]) },
function () { return oSettings.iDraw == 3; }
);
oTest.fnWaitTest(
"After filter",
function () { oTable.fnFilter('gecko') },
function () { return oSettings.iDraw == 4; }
);
oTest.fnWaitTest(
"After another filter",
function () { oTable.fnFilter('gec') },
function () { return oSettings.iDraw == 5; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,32 @@
// DATA_TEMPLATE: empty_table
/*
* NOTE: There are some differences in this zero config script for server-side
* processing compared to the other data sources. The main reason for this is the
* difference in how the server-side processing does it's filtering. Also the
* sorting state is always reset on each draw.
*/
oTest.fnStart( "Info element with display all" );
$(document).ready( function () {
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTable.fnSettings()._iDisplayLength = -1;
oTable.oApi._fnCalculateEnd( oTable.fnSettings() );
oTable.fnDraw();
/* Basic checks */
oTest.fnWaitTest(
"Check length is correct when -1 length given",
null,
function () {
return document.getElementById('example_info').innerHTML ==
"Showing 1 to 57 of 57 entries";
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,47 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "Destroy with hidden columns" );
$(document).ready( function () {
var mTest;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumnDefs": [
{ "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
{ "bVisible": false, "aTargets": [ 3 ] }
],
"fnInitComplete": function () {
this.fnDestroy();
}
} );
oTest.fnWaitTest(
"Check that the number of columns in table is correct",
null,
function () { return $('#example tbody tr:eq(0) td').length == 5; }
);
oTest.fnTest(
"And with scrolling",
function () {
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sScrollY": 200,
"aoColumnDefs": [
{ "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
{ "bVisible": false, "aTargets": [ 3 ] }
],
"fnInitComplete": function () {
this.fnDestroy();
}
} );
},
function () { return $('#example tbody tr:eq(0) td').length == 5; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,47 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "2600 - Display rewind when changing length" );
$(document).ready( function () {
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Info correct on init",
null,
function () { return $('#example_info').html() == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnWaitTest(
"Page 2",
function () { $('#example_next').click(); },
function () { return $('#example_info').html() == "Showing 11 to 20 of 57 entries"; }
);
oTest.fnWaitTest(
"Page 3",
function () { $('#example_next').click(); },
function () { return $('#example_info').html() == "Showing 21 to 30 of 57 entries"; }
);
oTest.fnWaitTest(
"Page 4",
function () { $('#example_next').click(); },
function () { return $('#example_info').html() == "Showing 31 to 40 of 57 entries"; }
);
oTest.fnWaitTest(
"Page 5",
function () { $('#example_next').click(); },
function () { return $('#example_info').html() == "Showing 41 to 50 of 57 entries"; }
);
oTest.fnWaitTest(
"Rewind",
function () { $('#example_length select').val('100'); $('#example_length select').change(); },
function () { return $('#example_info').html() == "Showing 1 to 57 of 57 entries"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,424 @@
// DATA_TEMPLATE: empty_table
/*
* NOTE: There are some differences in this zero config script for server-side
* processing compared to the other data sources. The main reason for this is the
* difference in how the server-side processing does it's filtering. Also the
* sorting state is always reset on each draw.
*/
oTest.fnStart( "Sanity checks for DataTables with data from JS" );
oTest.fnWaitTest(
"jQuery.dataTable function",
null,
function () { return typeof jQuery().dataTable == "function"; }
);
oTest.fnWaitTest(
"jQuery.dataTableSettings storage array",
null,
function () { return typeof jQuery().dataTableSettings == "object"; }
);
oTest.fnWaitTest(
"jQuery.dataTableExt plugin object",
null,
function () { return typeof jQuery().dataTableExt == "object"; }
);
$(document).ready( function () {
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
/* Basic checks */
oTest.fnWaitTest(
"Length changing div exists",
null,
function () { return document.getElementById('example_length') != null; }
);
oTest.fnWaitTest(
"Filtering div exists",
null,
function () { return document.getElementById('example_filter') != null; }
);
oTest.fnWaitTest(
"Information div exists",
null,
function () { return document.getElementById('example_info') != null; }
);
oTest.fnWaitTest(
"Pagination div exists",
null,
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnWaitTest(
"Processing div is off by default",
null,
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnWaitTest(
"10 rows shown on the first page",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnWaitTest(
"Initial sort occured",
null,
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
/* Need to use the WaitTest for sorting due to the setTimeout datatables uses */
oTest.fnWaitTest(
"Sorting (first click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnWaitTest(
"Sorting (second click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnWaitTest(
"Sorting (third click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnWaitTest(
"Sorting (first click) on numeric column",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "-"; }
);
oTest.fnWaitTest(
"Sorting (second click) on numeric column",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "522.1"; }
);
oTest.fnWaitTest(
"Sorting multi-column (first click)",
function () {
$('#example thead th:eq(0)').click();
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () { var b =
$('#example tbody td:eq(0)').html() == "Gecko" &&
$('#example tbody td:eq(1)').html() == "Camino 1.0"; return b; }
);
oTest.fnWaitTest(
"Sorting multi-column - sorting first column only",
function () {
$('#example thead th:eq(0)').click(); },
function () { var b =
$('#example tbody td:eq(0)').html() == "Gecko" &&
$('#example tbody td:eq(1)').html() == "Firefox 1.0"; return b; }
);
/* Basic paging */
oTest.fnWaitTest(
"Paging to second page",
function () { $('#example_next').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Mozilla 1.1"; }
);
oTest.fnWaitTest(
"Paging to first page",
function () { $('#example_previous').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnWaitTest(
"Attempting to page back beyond the first page",
function () { $('#example_previous').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Firefox 1.0"; }
);
/* Changing length */
oTest.fnWaitTest(
"Changing table length to 25 records",
function () { $("select[name=example_length]").val('25').change(); },
function () { return $('#example tbody tr').length == 25; }
);
oTest.fnWaitTest(
"Changing table length to 50 records",
function () { $("select[name=example_length]").val('50').change(); },
function () { return $('#example tbody tr').length == 50; }
);
oTest.fnWaitTest(
"Changing table length to 100 records",
function () { $("select[name=example_length]").val('100').change(); },
function () { return $('#example tbody tr').length == 57; }
);
oTest.fnWaitTest(
"Changing table length to 10 records",
function () { $("select[name=example_length]").val('10').change(); },
function () { return $('#example tbody tr').length == 10; }
);
/*
* Information element
*/
oTest.fnWaitTest(
"Information on zero config",
null,
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnWaitTest(
"Information on second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 11 to 20 of 57 entries"; }
);
oTest.fnWaitTest(
"Information on third page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 21 to 30 of 57 entries"; }
);
oTest.fnWaitTest(
"Information on last page",
function () {
$('#example_next').click();
$('#example_next').click();
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 51 to 57 of 57 entries"; }
);
oTest.fnWaitTest(
"Information back on first page",
function () {
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnWaitTest(
"Information with 25 records",
function () { $("select[name=example_length]").val('25').change(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 25 of 57 entries"; }
);
oTest.fnWaitTest(
"Information with 25 records - second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 26 to 50 of 57 entries"; }
);
oTest.fnWaitTest(
"Information with 100 records - first page",
function () {
$('#example_previous').click();
$("select[name=example_length]").val('100').change();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 57 of 57 entries"; }
);
oTest.fnWaitTest(
"Information back to 10 records",
function () {
$('#example_previous').click();
$("select[name=example_length]").val('10').change();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnWaitTest(
"Information with filter 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Information with filter 'Win' second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Information with filter 'Win' last page",
function () {
$('#example_next').click();
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 31 to 31 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Information with filter 'Win' back to first page",
function () {
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Information with filter 'Win' second page - second time",
function () {
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Information with filter increased to 'Win 98'",
function () { $('#example_filter input').val("Win 98").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 9 of 9 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Information with filter decreased to 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Information with filter 'Win' second page - third time",
function () {
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Information with filter removed",
function () { $('#example_filter input').val("").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/*
* Filtering
*/
oTest.fnWaitTest(
"Filter 'W' - rows",
function () {
$('#example_filter input').val("W").keyup(); },
function () { return $('#example tbody tr:eq(4) td:eq(1)').html() == "Netscape 7.2"; }
);
oTest.fnWaitTest(
"Filter 'W' - info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 42 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Filter 'Wi'",
function () { $('#example_filter input').val("Wi").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 32 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Filter 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Filter 'Win' - sorting column 1",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "AOL browser (AOL desktop)"; }
);
oTest.fnWaitTest(
"Filter 'Win' - sorting column 1 info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Filter 'Win' - sorting column 1 reverse",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnWaitTest(
"Filter 'Win XP' - maintaing reverse sorting col 1",
function () { $('#example_filter input').val("Win XP").keyup(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Internet Explorer 7"; }
);
oTest.fnWaitTest(
"Filter 'Win XP' - sorting col 3",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "6"; }
);
/* Note the filtering is different from the DOM since the server doesn't do
* "smart filtering" like the client side does
*/
oTest.fnWaitTest(
"Filter 'Win XP' - sorting col 3 - reversed",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "7"; }
);
oTest.fnWaitTest(
"Filter 'Win' - sorting col 3 - reversed info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 2 of 2 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Filter 'nothinghere'",
function () { $('#example_filter input').val("nothinghere").keyup(); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() ==
"No matching records found"; }
);
oTest.fnWaitTest(
"Filter 'nothinghere' - info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 0 to 0 of 0 entries (filtered from 57 total entries)"; }
);
oTest.fnWaitTest(
"Filter back to blank and 1st column sorting",
function () {
$('#example_filter input').val("").keyup();
$('#example thead th:eq(0)').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,212 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aaSorting" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Default sorting is single column",
null,
function () {
return oSettings.aaSorting.length == 1 && typeof oSettings.aaSorting[0] == 'object';
}
);
oTest.fnWaitTest(
"Default sorting is first column asc",
null,
function () {
return oSettings.aaSorting[0].length == 3 && oSettings.aaSorting[0][0] == 0 &&
oSettings.aaSorting[0][1] == 'asc';
}
);
oTest.fnWaitTest(
"Sorting is applied",
null,
function () { return $('#example tbody td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnWaitTest(
"Custom sorting on single string column asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnWaitTest(
"Custom sorting on single string column desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnWaitTest(
"Custom sorting on single int column asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['1','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "-"; }
);
oTest.fnWaitTest(
"Custom sorting on single int column desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnWaitTest(
"Multi-column sorting (2 column) - string asc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','asc'], ['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
);
oTest.fnWaitTest(
"Multi-column sorting (2 column) - string asc / string desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','asc'], ['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnWaitTest(
"Multi-column sorting (2 column) - string desc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','desc'], ['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "iPod Touch / iPhone"; }
);
oTest.fnWaitTest(
"Multi-column sorting (2 column) - string desc / string desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','desc'], ['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Safari 3.0"; }
);
oTest.fnWaitTest(
"Multi-column sorting (2 column) - string asc / int asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','asc'], ['3','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "1"; }
);
oTest.fnWaitTest(
"Multi-column sorting (2 column) - string asc / int desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','asc'], ['3','desc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "1.9"; }
);
oTest.fnWaitTest(
"Multi-column sorting (2 column) - string desc / int asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','desc'], ['3','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "125.5"; }
);
oTest.fnWaitTest(
"Multi-column sorting (2 column) - string desc / int desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','desc'], ['3','desc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "522.1"; }
);
oTest.fnWaitTest(
"Multi-column sorting (3 column) - string asc / int asc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSorting": [['0','asc'], ['3','asc'], ['1','asc']]
} );
},
function () { return $('#example tbody tr:eq(7) td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,67 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aaSortingFixed" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"No fixed sorting by default",
null,
function () {
return oSettings.aaSortingFixed == null;
}
);
oTest.fnWaitTest(
"Fixed sorting on first column (string/asc) with user sorting on second column (string/asc)",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSortingFixed": [['0','asc']]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
);
oTest.fnWaitTest(
"Fixed sorting on first column (string/asc) with user sorting on second column (string/desc)",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnWaitTest(
"Fixed sorting on fourth column (int/asc) with user sorting on second column (string/asc)",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aaSortingFixed": [['3','asc']]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnWaitTest(
"Fixed sorting on fourth column (int/asc) with user sorting on second column (string/desc)",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "PSP browser"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,25 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.bSeachable" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Columns are searchable by default",
function () { oTable.fnFilter("Camino"); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Camino 1.0"; }
);
/* NOT ACTUALLY GOING TO TEST BSEARCHABLE HERE. Reason being is that it requires the server
* side to alter it's processing, and this information about columns is not actually sent to
* the server
*/
oTest.fnComplete();
} );

View file

@ -0,0 +1,112 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.bSortable" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"All columns are sortable by default",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "All others"; }
);
oTest.fnWaitTest(
"Can disable sorting from one column",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "bSortable": false },
null,
null,
null
]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnWaitTest(
"Disabled column has no sorting class",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") == false; }
);
oTest.fnWaitTest(
"Other columns can still sort",
function () {
$('#example thead th:eq(4)').click();
$('#example thead th:eq(4)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Internet Explorer 4.0"; }
);
oTest.fnWaitTest(
"Disable sorting on multiple columns - no sorting classes",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "bSortable": false },
null,
{ "bSortable": false },
null
]
} );
},
function () {
var bReturn =
$('#example thead th:eq(1)').hasClass("sorting") ||
$('#example thead th:eq(3)').hasClass("sorting")
return bReturn == false;
}
);
oTest.fnWaitTest(
"Sorting on disabled column 1 has no effect",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnWaitTest(
"Sorting on disabled column 2 has no effect",
function () {
$('#example thead th:eq(3)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnWaitTest(
"Second sort on disabled column 2 has no effect",
function () {
$('#example thead th:eq(3)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnWaitTest(
"Even with multiple disabled sorting columns other columns can still sort",
function () {
$('#example thead th:eq(4)').click();
$('#example thead th:eq(4)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Internet Explorer 4.0"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,43 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.bUseRendered" );
/* bUseRendered is used to alter sorting data, if false then the original data is used for
* sorting rather than the rendered data
*/
$(document).ready( function () {
/* Check the default */
var mTmp = 0;
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
return "aaa";
} else
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Default for bUseRendered is true - rendered data is used for sorting",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'aaa'; }
);
/* Limited to what we can do here as the sorting is done on the server side. So stop here. */
oTest.fnComplete();
} );

View file

@ -0,0 +1,123 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.bVisible" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"All columns are visible by default",
null,
function () { return $('#example tbody tr:eq(0) td').length == 5; }
);
oTest.fnWaitTest(
"Can hide one column and it removes td column from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "bVisible": false },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td').length == 4; }
);
oTest.fnWaitTest(
"Can hide one column and it removes thead th column from DOM",
null,
function () { return $('#example thead tr:eq(0) th').length == 4; }
);
oTest.fnWaitTest(
"The correct thead column has been hidden",
null,
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "Platform(s)" &&
jqNodes[2].innerHTML == "Engine version" &&
jqNodes[3].innerHTML == "CSS grade";
return bReturn;
}
);
oTest.fnWaitTest(
"The correct tbody column has been hidden",
null,
function () {
var jqNodes = $('#example tbody tr:eq(0) td');
var bReturn =
jqNodes[0].innerHTML == "Gecko" &&
jqNodes[1].innerHTML == "Win 98+ / OSX.2+" &&
jqNodes[2].innerHTML == "1.7" &&
jqNodes[3].innerHTML == "A";
return bReturn;
}
);
oTest.fnWaitTest(
"Can hide multiple columns and it removes td column from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "bVisible": false },
{ "bVisible": false },
null,
{ "bVisible": false }
]
} );
},
function () { return $('#example tbody tr:eq(0) td').length == 2; }
);
oTest.fnWaitTest(
"Multiple hide - removes thead th column from DOM",
null,
function () { return $('#example thead tr:eq(0) th').length == 2; }
);
oTest.fnWaitTest(
"Multiple hide - the correct thead columns have been hidden",
null,
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "Engine version"
return bReturn;
}
);
oTest.fnWaitTest(
"Multiple hide - the correct tbody columns have been hidden",
null,
function () {
var jqNodes = $('#example tbody tr:eq(0) td');
var bReturn =
jqNodes[0].innerHTML == "Gecko" &&
jqNodes[1].innerHTML == "1.7"
return bReturn;
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,189 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.fnRender" );
$(document).ready( function () {
/* Check the default */
var mTmp = 0;
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "fnRender": function (a) {
mTmp++;
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Single column - fnRender is called once for each row",
null,
function () { return mTmp == 10; }
);
oTest.fnWaitTest(
"Confirm that fnRender passes one argument (an object) with three parameters",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( arguments.length != 1 || typeof a.iDataRow=='undefined' ||
typeof a.iDataColumn=='undefined' || typeof a.aData=='undefined' )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnWaitTest(
"fnRender iDataColumn is row number",
function () {
var iCount = 0;
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( iCount != a.iDataRow )
{
mTmp = false;
}
iCount++;
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnWaitTest(
"fnRender iDataColumn is the column",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( a.iDataColumn != 1 )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnWaitTest(
"fnRender aData is data array of correct size",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( a.aData.length != 5 )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnWaitTest(
"Passed back data is put into the DOM",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "fnRender": function (a) {
return 'unittest';
} },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'unittest'; }
);
oTest.fnWaitTest(
"Passed back data is put into the DOM",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
null,
{ "fnRender": function (a) {
return 'unittest1';
} },
{ "fnRender": function (a) {
return 'unittest2';
} },
null
]
} );
},
function () {
var bReturn =
$('#example tbody tr:eq(0) td:eq(2)').html() == 'unittest1' &&
$('#example tbody tr:eq(0) td:eq(3)').html() == 'unittest2';
return bReturn; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,118 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.sClass" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"By default the test class hasn't been applied to the column (sanity!)",
null,
function () { return $('#example tbody tr:eq(0) td:eq(2)').hasClass('unittest') == false; }
);
oTest.fnWaitTest(
"Add a class to a single column - first row",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
null,
{ "sClass": 'unittest' },
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(1) td:eq(2)').hasClass('unittest'); }
);
oTest.fnWaitTest(
"Add a class to a single column - third row",
null,
function () { return $('#example tbody tr:eq(3) td:eq(2)').hasClass('unittest'); }
);
oTest.fnWaitTest(
"Add a class to a single column - last row",
null,
function () { return $('#example tbody tr:eq(9) td:eq(2)').hasClass('unittest'); }
);
oTest.fnWaitTest(
"Add a class to a single column - has not applied to other columns - 1st",
null,
function () { return $('#example tbody tr:eq(3) td:eq(0)').hasClass('unittest') == false; }
);
oTest.fnWaitTest(
"Add a class to a single column - has not applied to other columns - 5th",
null,
function () { return $('#example tbody tr:eq(3) td:eq(4)').hasClass('unittest') == false; }
);
oTest.fnWaitTest(
"Add a class to a single column - seventh row - second page",
function () { $('#example_next').click(); },
function () { return $('#example tbody tr:eq(6) td:eq(2)').hasClass('unittest'); }
);
oTest.fnWaitTest(
"Add a class to a single column - has not applied to header",
null,
function () { return $('#example thead tr:eq(3) th:eq(4)').hasClass('unittest') == false; }
);
oTest.fnWaitTest(
"Add a class to a single column - has not applied to footer",
null,
function () { return $('#example thead tr:eq(3) th:eq(4)').hasClass('unittest') == false; }
);
oTest.fnWaitTest(
"Class defined for multiple columns - first row",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
{ "sClass": 'unittest2' },
null,
null,
{ "sClass": 'unittest1' },
null
]
} );
},
function () {
var bReturn =
$('#example tbody tr:eq(3) td:eq(0)').hasClass('unittest2') &&
$('#example tbody tr:eq(8) td:eq(3)').hasClass('unittest1');
return bReturn;
}
);
oTest.fnWaitTest(
"Class defined for multiple columns - has not applied to other columns - 5th 1",
null,
function () { return $('#example tbody tr:eq(0) td:eq(4)').hasClass('unittest1') == false; }
);
oTest.fnWaitTest(
"Class defined for multiple columns - has not applied to other columns - 5th 2",
null,
function () { return $('#example tbody tr:eq(6) td:eq(4)').hasClass('unittest2') == false; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,29 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.sName" );
/* This has no effect at all in DOM methods - so we just check that it has applied the name */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
null,
null,
{ "sName": 'unit test' },
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Names are stored in the columns object",
null,
function () { return oSettings.aoColumns[3].sName =="unit test"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,85 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.sTitle" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"If not given, then the columns titles are empty",
null,
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "Browser" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "CSS grade";
return bReturn;
}
);
oTest.fnWaitTest(
"Can set a single column title - and others are read from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "sTitle": 'unit test' },
null,
null,
null
]
} );
},
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "unit test" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "CSS grade";
return bReturn;
}
);
oTest.fnWaitTest(
"Can set multiple column titles",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
{ "sTitle": 'unit test 1' },
null,
null,
{ "sTitle": 'unit test 2' }
]
} );
},
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "unit test 1" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "unit test 2";
return bReturn;
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,90 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoColumns.sWidth" );
/* NOTE - we need to disable the auto width for the majority of these test in order to preform
* these tests as the auto width will convert the width to a px value. We can do 'non-exact' tests
* with auto width enabled however to ensure it scales columns as required
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bAutoWidth": false,
"aoColumns": [
null,
{ "sWidth": '40%' },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"With auto width disabled the width for one column is appled",
null,
function () { return $('#example thead th:eq(1)')[0].style.width == "40%"; }
);
oTest.fnWaitTest(
"With auto width disabled the width for one column is appled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bAutoWidth": false,
"aoColumns": [
null,
null,
{ "sWidth": '20%' },
{ "sWidth": '30%' },
null
]
} );
},
function () {
var bReturn =
$('#example thead th:eq(2)')[0].style.width == "20%" &&
$('#example thead th:eq(3)')[0].style.width == "30%";
return bReturn;
}
);
oTest.fnWaitTest(
"With auto width, it will make the smallest column the largest with percentage width given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"aoColumns": [
null,
null,
null,
{ "sWidth": '40%' },
null
]
} );
},
function () {
var anThs = $('#example thead th');
var a0 = anThs[0].offsetWidth;
var a1 = anThs[1].offsetWidth;
var a2 = anThs[2].offsetWidth;
var a3 = anThs[3].offsetWidth;
var a4 = anThs[4].offsetWidth;
if ( a3>a0 && a3>a1 && a3>a2 && a3>a4 )
return true;
else
return false;
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,70 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "aoSearchCols" );
/* We could be here forever testing this one, so we test a limited subset on a couple of colums */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing_filter_col.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Default should be to have a empty colums array",
null,
function () {
var bReturn =
oSettings.aoPreSearchCols[0].sSearch == 0 && !oSettings.aoPreSearchCols[0].bRegex &&
oSettings.aoPreSearchCols[1].sSearch == 0 && !oSettings.aoPreSearchCols[1].bRegex &&
oSettings.aoPreSearchCols[2].sSearch == 0 && !oSettings.aoPreSearchCols[2].bRegex &&
oSettings.aoPreSearchCols[3].sSearch == 0 && !oSettings.aoPreSearchCols[3].bRegex &&
oSettings.aoPreSearchCols[4].sSearch == 0 && !oSettings.aoPreSearchCols[4].bRegex;
return bReturn;
}
);
oTest.fnWaitTest(
"Search on a single column - no regex statement given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing_filter_col.php",
"aoSearchCols": [
null,
{ "sSearch": "Mozilla" },
null,
{ "sSearch": "1" },
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "1"; }
);
oTest.fnWaitTest(
"Search on two columns - no regex statement given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing_filter_col.php",
"aoSearchCols": [
null,
{ "sSearch": "Mozilla" },
null,
{ "sSearch": "1.5" },
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "1.5"; }
);
/* No regex escape searches here - would need to be implemented on the server-side */
oTest.fnComplete();
} );

View file

@ -0,0 +1,109 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "asStripClasses" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Default row striping is applied",
null,
function () {
return $('#example tbody tr:eq(0)').hasClass('odd') &&
$('#example tbody tr:eq(1)').hasClass('even') &&
$('#example tbody tr:eq(2)').hasClass('odd') &&
$('#example tbody tr:eq(3)').hasClass('even');
}
);
oTest.fnWaitTest(
"Row striping on the second page",
function () { $('#example_next').click(); },
function () {
return $('#example tbody tr:eq(0)').hasClass('odd') &&
$('#example tbody tr:eq(1)').hasClass('even') &&
$('#example tbody tr:eq(2)').hasClass('odd') &&
$('#example tbody tr:eq(3)').hasClass('even');
}
);
/* No striping */
oTest.fnWaitTest(
"No row striping",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"asStripClasses": []
} );
},
function () {
if ( typeof $('#example tbody tr:eq(1)')[0] == 'undefined' )
{
/* Use the 'wait for' to allow this to become true */
return false;
}
return $('#example tbody tr:eq(0)')[0].className == "" &&
$('#example tbody tr:eq(1)')[0].className == "" &&
$('#example tbody tr:eq(2)')[0].className == "" &&
$('#example tbody tr:eq(3)')[0].className == "";
}
);
/* Custom striping */
oTest.fnWaitTest(
"Custom striping [2]",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"asStripClasses": [ 'test1', 'test2' ]
} );
},
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test1') &&
$('#example tbody tr:eq(3)').hasClass('test2');
}
);
/* long array of striping */
oTest.fnWaitTest(
"Custom striping [4]",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"asStripClasses": [ 'test1', 'test2', 'test3', 'test4' ]
} );
},
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test3') &&
$('#example tbody tr:eq(3)').hasClass('test4');
}
);
oTest.fnWaitTest(
"Custom striping is restarted on second page [2]",
function () { $('#example_next').click(); },
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test3') &&
$('#example tbody tr:eq(3)').hasClass('test4');
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,145 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bAutoWidth" );
/* It's actually a little tricky to test this. We can't test absolute numbers because
* different browsers and different platforms will render the width of the columns slightly
* differently. However, we certainly can test the principle of what should happen (column
* width doesn't change over pages)
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Auto width is enabled by default",
null,
function () { return oSettings.oFeatures.bAutoWidth; }
);
oTest.fnWaitTest(
"First column has a width assigned to it",
null,
function () { return $('#example thead th:eq(0)').attr('style').match(/width/i); }
);
/*
This would seem like a better test - but there appear to be difficulties with tables
which are bigger (calculated) than there is actually room for. I suspect this is actually
a bug in datatables
oTest.fnWaitTest(
"Check column widths on first page match second page",
null,
function () {
var anThs = $('#example thead th');
var a0 = anThs[0].offsetWidth;
var a1 = anThs[1].offsetWidth;
var a2 = anThs[2].offsetWidth;
var a3 = anThs[3].offsetWidth;
var a4 = anThs[4].offsetWidth;
$('#example_next').click();
var b0 = anThs[0].offsetWidth;
var b1 = anThs[1].offsetWidth;
var b2 = anThs[2].offsetWidth;
var b3 = anThs[3].offsetWidth;
var b4 = anThs[4].offsetWidth;
console.log( a0, b0, a1, b1, a2, b2, a3, b3 );
if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
return true;
else
return false;
}
);
oTest.fnWaitTest(
"Check column widths on second page match thid page",
null,
function () {
var anThs = $('#example thead th');
var a0 = anThs[0].offsetWidth;
var a1 = anThs[1].offsetWidth;
var a2 = anThs[2].offsetWidth;
var a3 = anThs[3].offsetWidth;
var a4 = anThs[4].offsetWidth;
$('#example_next').click();
var b0 = anThs[0].offsetWidth;
var b1 = anThs[1].offsetWidth;
var b2 = anThs[2].offsetWidth;
var b3 = anThs[3].offsetWidth;
var b4 = anThs[4].offsetWidth;
if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
return true;
else
return false;
}
);
*/
/* Check can disable */
oTest.fnWaitTest(
"Auto width can be disabled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bAutoWidth": false
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bAutoWidth == false; }
);
oTest.fnWaitTest(
"First column does not have a width assigned to it",
null,
function () { return $('#example thead th:eq(0)').attr('style') == null; }
);
/*
oTest.fnWaitTest(
"Check column widths on first page do not match second page",
null,
function () {
var anThs = $('#example thead th');
var a0 = anThs[0].offsetWidth;
var a1 = anThs[1].offsetWidth;
var a2 = anThs[2].offsetWidth;
var a3 = anThs[3].offsetWidth;
var a4 = anThs[4].offsetWidth;
$('#example_next').click();
var b0 = anThs[0].offsetWidth;
var b1 = anThs[1].offsetWidth;
var b2 = anThs[2].offsetWidth;
var b3 = anThs[3].offsetWidth;
var b4 = anThs[4].offsetWidth;
if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
return false;
else
return true;
}
);
*/
/* Enable makes no difference */
oTest.fnWaitTest(
"Auto width enabled override",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bAutoWidth": true
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bAutoWidth; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,47 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bFilter" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Filtering div exists by default",
null,
function () { return document.getElementById('example_filter') != null; }
);
/* Check can disable */
oTest.fnWaitTest(
"Fltering can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bFilter": false
} );
},
function () { return document.getElementById('example_filter') == null; }
);
/* Enable makes no difference */
oTest.fnWaitTest(
"Filtering enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bFilter": true
} );
},
function () { return document.getElementById('example_filter') != null; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,168 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bInfiniteScroll" );
$(document).ready( function () {
var oTable = $('#example').dataTable( {
"bScrollInfinite": true,
"sScrollY": "200px",
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"10 rows by default",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnTest(
"Info",
null,
function () { return $('#example_info').html() == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Get nodes",
null,
function () { return $('#example tbody>tr').length == 10; }
);
oTest.fnTest(
"Get nodes function",
null,
function () { return $('#example').dataTable().fnGetNodes().length == 10; }
);
oTest.fnWaitTest(
"Scroll on 20px adds 10 rows",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnTest(
"Info after 20px scroll",
null,
function () { return $('#example_info').html() == "Showing 1 to 20 of 57 entries"; }
);
oTest.fnTest(
"Get nodes after 20px scroll",
null,
function () { return $('#example tbody>tr').length == 20; }
);
oTest.fnTest(
"Get nodes function after 20px scroll",
null,
function () { return $('#example').dataTable().fnGetNodes().length == 20; }
);
oTest.fnWaitTest(
"Scroll on 10px more results in the same number of rows",
function () { $('div.dataTables_scrollBody').scrollTop(30); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnTest(
"Info after 10 more px scroll",
null,
function () { return $('#example_info').html() == "Showing 1 to 20 of 57 entries"; }
);
oTest.fnWaitTest(
"Scroll to 280px adds another 10 rows",
function () { $('div.dataTables_scrollBody').scrollTop(280); },
function () { return $('#example tbody tr').length == 30; }
);
oTest.fnTest(
"Info after 240px scroll",
null,
function () { return $('#example_info').html() == "Showing 1 to 30 of 57 entries"; }
);
oTest.fnTest(
"Get nodes after 240px scroll",
null,
function () { return $('#example tbody>tr').length == 30; }
);
oTest.fnTest(
"Get nodes function after 240px scroll",
null,
function () { return $('#example').dataTable().fnGetNodes().length == 30; }
);
oTest.fnWaitTest(
"Filtering will drop back to 10 rows",
function () { oTable.fnFilter('gec') },
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnTest(
"Info after filtering",
null,
function () { return $('#example_info').html() == "Showing 1 to 10 of 20 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Get nodes after filtering",
null,
function () { return $('#example tbody>tr').length == 10; }
);
oTest.fnTest(
"Get nodes function after filtering",
null,
function () { return $('#example').dataTable().fnGetNodes().length == 10; }
);
oTest.fnWaitTest(
"Scroll after filtering adds 10",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnWaitTest(
"Get nodes after filtering",
null,
function () { return $('#example tbody>tr').length == 20; }
);
oTest.fnWaitTest(
"Get nodes function after filtering",
null,
function () { return $('#example').dataTable().fnGetNodes().length == 20; }
);
oTest.fnWaitTest(
"Sorting will drop back to 10 rows",
function () {
$('div.dataTables_scrollBody').scrollTop(0);
oTable.fnSort([[1,'asc']])
},
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnWaitTest(
"Scroll after sorting adds 10",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnTest(
"Get nodes after scrolling",
null,
function () { return $('#example tbody>tr').length == 20; }
);
oTest.fnTest(
"Get nodes function after scrolling",
null,
function () { return $('#example').dataTable().fnGetNodes().length == 20; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,47 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bInfo" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Info div exists by default",
null,
function () { return document.getElementById('example_info') != null; }
);
/* Check can disable */
oTest.fnWaitTest(
"Info can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bInfo": false
} );
},
function () { return document.getElementById('example_info') == null; }
);
/* Enable makes no difference */
oTest.fnWaitTest(
"Info enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bInfo": true
} );
},
function () { return document.getElementById('example_info') != null; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,78 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bLengthChange" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Length div exists by default",
null,
function () { return document.getElementById('example_length') != null; }
);
oTest.fnWaitTest(
"Four default options",
null,
function () { return $("select[name=example_length] option").length == 4; }
);
oTest.fnWaitTest(
"Default options",
null,
function () {
var opts = $("select[name='example_length'] option");
return opts[0].getAttribute('value') == 10 && opts[1].getAttribute('value') == 25 &&
opts[2].getAttribute('value') == 50 && opts[3].getAttribute('value') == 100;
}
);
oTest.fnWaitTest(
"Info takes length into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Check can disable */
oTest.fnWaitTest(
"Change length can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bLengthChange": false
} );
},
function () { return document.getElementById('example_length') == null; }
);
oTest.fnWaitTest(
"Information takes length disabled into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Enable makes no difference */
oTest.fnWaitTest(
"Length change enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bLengthChange": true
} );
},
function () { return document.getElementById('example_length') != null; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,62 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bPaginate" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Pagiantion div exists by default",
null,
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnWaitTest(
"Information div takes paging into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Check can disable */
oTest.fnWaitTest(
"Pagiantion can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bPaginate": false
} );
},
function () { return document.getElementById('example_paginate') == null; }
);
oTest.fnWaitTest(
"Information div takes paging disabled into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 57 of 57 entries"; }
);
/* Enable makes no difference */
oTest.fnWaitTest(
"Pagiantion enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bPaginate": true
} );
},
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,106 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bProcessing" );
/* It's actually a bit hard to set this one due to the fact that it will only be shown
* when DataTables is doing some kind of processing. The server-side processing is a bit
* better to test this than here - so we just the interal functions to enable it and check
* that it is available
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Processing is off by default",
null,
function () { return oSettings.oFeatures.bProcessing == false; }
);
oTest.fnWaitTest(
"Processing div is not in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnWaitTest(
"Processing div cannot be shown",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnWaitTest(
"Processing div cannot be hidden",
function () { oTable.oApi._fnProcessingDisplay( oSettings, false ); },
function () { return document.getElementById('example_processing') == null; }
);
/* Check can disable */
oTest.fnWaitTest(
"Processing can be enabled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bProcessing": true
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bProcessing == true; }
);
oTest.fnWaitTest(
"Processing div is in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing'); }
);
oTest.fnWaitTest(
"Processing div is hidden by default",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing').style.visibility = "hidden"; }
);
oTest.fnWaitTest(
"Processing div can be shown",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing').style.visibility = "visible"; }
);
oTest.fnWaitTest(
"Processing div can be hidden",
function () { oTable.oApi._fnProcessingDisplay( oSettings, false ); },
function () { return document.getElementById('example_processing').style.visibility = "hidden"; }
);
/* Enable makes no difference */
oTest.fnWaitTest(
"Processing disabled override",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bProcessing": false
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bProcessing == false; }
);
oTest.fnWaitTest(
"Processing div is not in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,21 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bServerSide" );
/* All the other scripts blast the ssp processing */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Server side can be set to on",
null,
function () { return oSettings.oFeatures.bServerSide == true; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,102 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bSort" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Sorting is on by default",
null,
function () { return $('#example tbody td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnWaitTest(
"Sorting Asc by default class applied",
null,
function () { return $('#example thead th:eq(0)').hasClass("sorting_asc"); }
);
oTest.fnWaitTest(
"Click on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnWaitTest(
"Sorting class removed from first column",
null,
function () { return $('#example thead th:eq(0)').hasClass("sorting_asc") != true; }
);
oTest.fnWaitTest(
"Sorting asc class applied to second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc"); }
);
oTest.fnWaitTest(
"Reverse on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnWaitTest(
"Sorting acs class removed from second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") != true; }
);
oTest.fnWaitTest(
"Sorting desc class applied to second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_desc"); }
);
/* Check can disable */
oTest.fnWaitTest(
"Pagiantion can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bSort": false
} );
},
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
oTest.fnWaitTest(
"Click on second column has no effect",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
oTest.fnWaitTest(
"Reverse on second column has no effect",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
/* Enable makes no difference */
oTest.fnWaitTest(
"Sorting enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bSort": true
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,135 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bSortClasses" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Sorting classes are applied by default",
null,
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnWaitTest(
"Sorting classes are applied to all required cells",
null,
function () { return $('#example tbody tr:eq(7) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnWaitTest(
"Sorting classes are not applied to non-sorting columns",
null,
function () { return $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_1') == false; }
);
oTest.fnWaitTest(
"Sorting multi-column - add column 1",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2');
}
);
oTest.fnWaitTest(
"Sorting multi-column - add column 2",
function () {
oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3');
}
);
oTest.fnWaitTest(
"Sorting multi-column - add column 3",
function () {
oDispacher.click( $('#example thead th:eq(3)')[0], { 'shift': true } );
},
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') &&
$('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3');
}
);
oTest.fnWaitTest(
"Remove sorting classes on single column sort",
function () {
$('#example thead th:eq(4)').click();
},
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false &&
$('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3') == false;
}
);
oTest.fnWaitTest(
"Sorting class 1 was added",
null,
function () { return $('#example tbody tr:eq(1) td:eq(4)').hasClass('sorting_1'); }
);
/* Check can disable */
oTest.fnWaitTest(
"Sorting classes can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bSortClasses": false
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false; }
);
oTest.fnWaitTest(
"Sorting classes disabled - add column 1 - no effect",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false;
}
);
oTest.fnWaitTest(
"Sorting classes disabled - add column 2 - no effect",
function () {
oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false;
}
);
/* Enable makes no difference */
oTest.fnWaitTest(
"Sorting classes enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bSortClasses": true
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,89 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "fnDrawCallback" );
/* Fairly boring function compared to the others! */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnWaitTest(
"Default should be null",
null,
function () { return oSettings.fnDrawCallback == null; }
);
oTest.fnWaitTest(
"One argument passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnDrawCallback": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnWaitTest(
"That one argument is the settings object",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnDrawCallback": function ( oSettings ) {
mPass = oSettings;
}
} );
},
function () { return oTable.fnSettings() == mPass; }
);
oTest.fnWaitTest(
"fnRowCallback called once on first draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnDrawCallback": function ( ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnWaitTest(
"fnRowCallback called once on each draw there after as well",
function () {
$('#example_next').click();
$('#example_next').click();
$('#example_next').click();
},
function () { return mPass > 1; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,191 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "fnHeaderCallback" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnWaitTest(
"Default should be null",
null,
function () { return oSettings.fnHeaderCallback == null; }
);
oTest.fnWaitTest(
"Five arguments passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnHeaderCallback": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 5; }
);
oTest.fnWaitTest(
"fnRowCallback called once per draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnWaitTest(
"fnRowCallback called on paging (i.e. another draw)",
function () { $('#example_next').click(); },
function () { return mPass == 2; }
);
oTest.fnWaitTest(
"fnRowCallback allows us to alter row information",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
}
} );
},
function () { return $('#example thead th:eq(0)').html() == "Displaying 10 records"; }
);
oTest.fnWaitTest(
"iStart correct on first page",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart != 0 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnWaitTest(
"iStart correct on second page",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart == 0 )
{
mPass = true;
}
},
"fnInitComplete": function () {
$('#example_next').click();
}
} );
},
function () { return mPass; }
);
oTest.fnWaitTest(
"iEnd correct on second page",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iEnd == 10 )
{
mPass = true;
}
},
"fnInitComplete": function () {
$('#example_next').click();
}
} );
},
function () { return mPass; }
);
oTest.fnWaitTest(
"aiDisplay length is full data when not filtered",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 10 )
{
mPass = true;
}
}
} );
},
function () { return mPass; }
);
oTest.fnWaitTest(
"aiDisplay length is 9 when filtering on 'Mozilla'",
function () {
oSession.fnRestore();
mPass = false;
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 9 )
{
mPass = true;
}
}
} );
oTable.fnFilter( "Mozilla" );
},
function () { return mPass; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,105 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "fnInitComplete" );
/* Fairly boring function compared to the others! */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnWaitTest(
"Default should be null",
null,
function () { return oSettings.fnInitComplete == null; }
);
oTest.fnWaitTest(
"One argument passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnInitComplete": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnWaitTest(
"That one argument is the settings object",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnInitComplete": function ( oSettings ) {
mPass = oSettings;
}
} );
},
function () { return oTable.fnSettings() == mPass; }
);
oTest.fnWaitTest(
"fnInitComplete called once on first draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnInitComplete": function ( ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnWaitTest(
"fnInitComplete never called there after",
function () {
$('#example_next').click();
$('#example_next').click();
$('#example_next').click();
},
function () { return mPass == 1; }
);
oTest.fnWaitTest(
"10 rows in the table on complete",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnInitComplete": function ( ) {
mPass = $('#example tbody tr').length;
}
} );
},
function () { return mPass == 10; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,118 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "fnRowCallback" );
/* Note - fnRowCallback MUST return the first arguments (modified or not) */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnWaitTest(
"Default should be null",
null,
function () { return oSettings.fnRowCallback == null; }
);
oTest.fnWaitTest(
"Four arguments passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnRowCallback": function ( nTr ) {
mPass = arguments.length;
return nTr;
}
} );
},
function () { return mPass == 4; }
);
oTest.fnWaitTest(
"fnRowCallback called once for each drawn row",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
mPass++;
return nTr;
}
} );
},
function () { return mPass == 10; }
);
oTest.fnWaitTest(
"fnRowCallback allows us to alter row information",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
$(nTr).addClass('unit_test');
return nTr;
}
} );
},
function () { return $('#example tbody tr:eq(1)').hasClass('unit_test'); }
);
oTest.fnWaitTest(
"Data array has length matching columns",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
if ( asData.length != 5 )
mPass = false;
return nTr;
}
} );
},
function () { return mPass; }
);
oTest.fnWaitTest(
"Data array has length matching columns",
function () {
oSession.fnRestore();
mPass = true;
var iCount = 0;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
if ( iCount != iDrawIndex )
mPass = false;
iCount++;
return nTr;
}
} );
},
function () { return mPass; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,85 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "iDisplayLength" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
oTest.fnWaitTest(
"Default length is ten",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnWaitTest(
"Select menu shows 10",
null,
function () { return $('#example_length select').val() == 10; }
);
oTest.fnWaitTest(
"Set initial length to 25",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"iDisplayLength": 25
} );
},
function () { return $('#example tbody tr').length == 25; }
);
oTest.fnWaitTest(
"Select menu shows 25",
null,
function () { return $('#example_length select').val() == 25; }
);
oTest.fnWaitTest(
"Set initial length to 100",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"iDisplayLength": 100
} );
},
function () { return $('#example tbody tr').length == 57; }
);
oTest.fnWaitTest(
"Select menu shows 25",
null,
function () { return $('#example_length select').val() == 100; }
);
oTest.fnWaitTest(
"Set initial length to 23 (unknown select menu length)",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"iDisplayLength": 23
} );
},
function () { return $('#example tbody tr').length == 23; }
);
oTest.fnWaitTest(
"Select menu shows 10 (since 23 is unknow)",
null,
function () { return $('#example_length select').val() == 10; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,86 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.oPaginate" );
/* Note that the paging language information only has relevence in full numbers */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sPaginationType": "full_numbers"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"oLanguage.oPaginate defaults",
null,
function () {
var bReturn =
oSettings.oLanguage.oPaginate.sFirst == "First" &&
oSettings.oLanguage.oPaginate.sPrevious == "Previous" &&
oSettings.oLanguage.oPaginate.sNext == "Next" &&
oSettings.oLanguage.oPaginate.sLast == "Last";
return bReturn;
}
);
oTest.fnTest(
"oLanguage.oPaginate defaults are in the DOM",
null,
function () {
var bReturn =
$('#example_paginate .first').html() == "First" &&
$('#example_paginate .previous').html() == "Previous" &&
$('#example_paginate .next').html() == "Next" &&
$('#example_paginate .last').html() == "Last";
return bReturn;
}
);
oTest.fnWaitTest(
"oLanguage.oPaginate can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sPaginationType": "full_numbers",
"oLanguage": {
"oPaginate": {
"sFirst": "unit1",
"sPrevious": "test2",
"sNext": "unit3",
"sLast": "test4"
}
}
} );
oSettings = oTable.fnSettings();
},
function () {
var bReturn =
oSettings.oLanguage.oPaginate.sFirst == "unit1" &&
oSettings.oLanguage.oPaginate.sPrevious == "test2" &&
oSettings.oLanguage.oPaginate.sNext == "unit3" &&
oSettings.oLanguage.oPaginate.sLast == "test4";
return bReturn;
}
);
oTest.fnTest(
"oLanguage.oPaginate definitions are in the DOM",
null,
function () {
var bReturn =
$('#example_paginate .first').html() == "unit1" &&
$('#example_paginate .previous').html() == "test2" &&
$('#example_paginate .next').html() == "unit3" &&
$('#example_paginate .last').html() == "test4";
return bReturn;
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,124 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.sInfo" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Info language is 'Showing _START_ to _END_ of _TOTAL_ entries' by default",
null,
function () { return oSettings.oLanguage.sInfo == "Showing _START_ to _END_ of _TOTAL_ entries"; }
);
oTest.fnTest(
"Info language default is in the DOM",
null,
function () { return document.getElementById('example_info').innerHTML = "Showing 1 to 10 of 57 entries"; }
);
oTest.fnWaitTest(
"Info language can be defined - without any macros",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfo": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sInfo == "unit test"; }
);
oTest.fnTest(
"Info language definition is in the DOM",
null,
function () { return document.getElementById('example_info').innerHTML = "unit test"; }
);
oTest.fnWaitTest(
"Info language can be defined - with macro _START_ only",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfo": "unit _START_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 1 test"; }
);
oTest.fnWaitTest(
"Info language can be defined - with macro _END_ only",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfo": "unit _END_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 10 test"; }
);
oTest.fnWaitTest(
"Info language can be defined - with macro _TOTAL_ only",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfo": "unit _END_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 57 test"; }
);
oTest.fnWaitTest(
"Info language can be defined - with macros _START_ and _END_",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfo": "unit _START_ _END_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 1 10 test"; }
);
oTest.fnWaitTest(
"Info language can be defined - with macros _START_, _END_ and _TOTAL_",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfo": "unit _START_ _END_ _TOTAL_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 1 10 57 test"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,82 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.sInfoEmpty" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Info empty language is 'Showing 0 to 0 of 0 entries' by default",
function () { oTable.fnFilter("nothinghere"); },
function () { return oSettings.oLanguage.sInfoEmpty == "Showing 0 to 0 of 0 entries"; }
);
oTest.fnWaitTest(
"Info empty language default is in the DOM",
null,
function () {
var bReturn = document.getElementById('example_info').innerHTML.replace(
' '+oSettings.oLanguage.sInfoFiltered.replace( '_MAX_', '57' ), "" ) ==
"Showing 0 to 0 of 0 entries";
return bReturn;
}
);
oTest.fnWaitTest(
"Info empty language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfoEmpty": "unit test"
}
} );
oSettings = oTable.fnSettings();
oTable.fnFilter("nothinghere");
},
function () { return oSettings.oLanguage.sInfoEmpty == "unit test"; }
);
oTest.fnWaitTest(
"Info empty language default is in the DOM",
null,
function () {
var bReturn = document.getElementById('example_info').innerHTML.replace(
' '+oSettings.oLanguage.sInfoFiltered.replace( '_MAX_', '57' ), "" ) ==
"unit test";
return bReturn;
}
);
oTest.fnWaitTest(
"Macro's not replaced",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfoEmpty": "unit _START_ _END_ _TOTAL_ test"
}
} );
oTable.fnFilter("nothinghere");
},
function () {
var bReturn = document.getElementById('example_info').innerHTML.replace(
' '+oSettings.oLanguage.sInfoFiltered.replace( '_MAX_', '57' ), "" ) ==
"unit _START_ _END_ _TOTAL_ test";
return bReturn;
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,82 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.sInfoPostFix" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Info post fix language is '' (blank) by default",
null,
function () { return oSettings.oLanguage.sInfoPostFix == ""; }
);
oTest.fnTest(
"Width no post fix, the basic info shows",
null,
function () { return document.getElementById('example_info').innerHTML = "Showing 1 to 10 of 57 entries"; }
);
oTest.fnWaitTest(
"Info post fix language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfoPostFix": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sInfoPostFix == "unit test"; }
);
oTest.fnTest(
"Info empty language default is in the DOM",
null,
function () { return document.getElementById('example_info').innerHTML = "Showing 1 to 10 of 57 entries unit test"; }
);
oTest.fnWaitTest(
"Macros have no effect in the post fix",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfoPostFix": "unit _START_ _END_ _TOTAL_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "Showing 1 to 10 of 57 entries unit _START_ _END_ _TOTAL_ test"; }
);
oTest.fnWaitTest(
"Post fix is applied after fintering info",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sInfoPostFix": "unit test"
}
} );
oTable.fnFilter("nothinghere");
},
function () { return document.getElementById('example_info').innerHTML = "Showing 0 to 0 of 0 entries unit (filtered from 57 total entries) test"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,110 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.sLengthMenu" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Menu language is 'Show _MENU_ entries' by default",
null,
function () { return oSettings.oLanguage.sLengthMenu == "Show _MENU_ entries"; }
);
oTest.fnTest(
"_MENU_ macro is replaced by select menu in DOM",
null,
function () { return $('select', oSettings.aanFeatures.l[0]).length == 1 }
);
oTest.fnTest(
"Default is put into DOM",
null,
function () {
var anChildren = oSettings.aanFeatures.l[0].childNodes;
var bReturn =
anChildren[0].nodeValue == "Show " &&
anChildren[2].nodeValue == " entries";
return bReturn;
}
);
oTest.fnWaitTest(
"Menu length language can be defined - no _MENU_ macro",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sLengthMenu": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sLengthMenu == "unit test"; }
);
oTest.fnTest(
"Menu length language definition is in the DOM",
null,
function () {
var anChildren = oSettings.aanFeatures.l[0].childNodes;
return anChildren[0].nodeValue == "unit test";
}
);
oTest.fnWaitTest(
"Menu length language can be defined - with _MENU_ macro",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sLengthMenu": "unit _MENU_ test"
}
} );
oSettings = oTable.fnSettings();
},
function () {
var anChildren = oSettings.aanFeatures.l[0].childNodes;
var bReturn =
anChildren[0].nodeValue == "unit " &&
anChildren[2].nodeValue == " test";
return bReturn;
}
);
oTest.fnWaitTest(
"Only the _MENU_ macro",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sLengthMenu": "_MENU_"
}
} );
oSettings = oTable.fnSettings();
},
function () {
var anChildren = oSettings.aanFeatures.l[0].childNodes;
var bReturn =
anChildren.length == 1 &&
$('select', oSettings.aanFeatures.l[0]).length == 1;
return bReturn;
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,51 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.sProcessing" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bProcessing": true
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Processing language is 'Processing...' by default",
null,
function () { return oSettings.oLanguage.sProcessing == "Processing..."; }
);
oTest.fnTest(
"Processing language default is in the DOM",
null,
function () { return document.getElementById('example_processing').innerHTML = "Processing..."; }
);
oTest.fnWaitTest(
"Processing language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"bProcessing": true,
"oLanguage": {
"sProcessing": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sProcessing == "unit test"; }
);
oTest.fnTest(
"Processing language definition is in the DOM",
null,
function () { return document.getElementById('example_processing').innerHTML = "unit test"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,68 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.sSearch" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Search language is 'Search:' by default",
null,
function () { return oSettings.oLanguage.sSearch == "Search:"; }
);
oTest.fnTest(
"Search language default is in the DOM",
null,
function () { return document.getElementById('example_filter').childNodes[0].nodeValue
== "Search: "; }
);
oTest.fnWaitTest(
"Search language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sSearch": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sSearch == "unit test"; }
);
oTest.fnTest(
"Info language definition is in the DOM",
null,
function () { return document.getElementById('example_filter').childNodes[0].nodeValue
== "unit test "; }
);
oTest.fnWaitTest(
"Blank search has no space (separator) inserted",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sSearch": ""
}
} );
oSettings = oTable.fnSettings();
},
function () { return document.getElementById('example_filter').childNodes.length == 1; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,64 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.sUrl" );
/* Note that we only test the internal storage of language information pulled form a file here
* as the other language tests will check it goes into the DOM correctly
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"sUrl is blank by default",
null,
function () { return oSettings.oLanguage.sUrl == ""; }
);
oTest.fnWaitTest(
"Loading of German file loads language information",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sUrl": "../../../examples/examples_support/de_DE.txt"
}
} );
oSettings = oTable.fnSettings();
},
function () {
var bReturn =
oSettings.oLanguage.sProcessing == "Bitte warten..." &&
oSettings.oLanguage.sLengthMenu == "_MENU_ Einträge anzeigen" &&
oSettings.oLanguage.sZeroRecords == "Keine Einträge vorhanden." &&
oSettings.oLanguage.sInfo == "_START_ bis _END_ von _TOTAL_ Einträgen" &&
oSettings.oLanguage.sInfoEmpty == "0 bis 0 von 0 Einträgen" &&
oSettings.oLanguage.sInfoFiltered == "(gefiltert von _MAX_ Einträgen)" &&
oSettings.oLanguage.sInfoPostFix == "" &&
oSettings.oLanguage.sSearch == "Suchen" &&
oSettings.oLanguage.oPaginate.sFirst == "Erster" &&
oSettings.oLanguage.oPaginate.sPrevious == "Zurück" &&
oSettings.oLanguage.oPaginate.sNext == "Nächster" &&
oSettings.oLanguage.oPaginate.sLast == "Letzter";
return bReturn;
}
);
/* One DOM check just to ensure that they go into the DOM */
oTest.fnTest(
"Loaded language goes into the DOM",
null,
function () { return document.getElementById('example_info').innerHTML = "1 bis 10 von 57 Einträgen"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,58 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oLanguage.sZeroRecords" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Zero records language is 'No matching records found' by default",
null,
function () { return oSettings.oLanguage.sZeroRecords == "No matching records found"; }
);
oTest.fnWaitTest(
"Text is shown when empty table (after filtering)",
function () { oTable.fnFilter('nothinghere'); },
function () {
if ( $('#example tbody tr td').length == 0 )
return false;
return $('#example tbody tr td')[0].innerHTML == "No matching records found";
}
);
oTest.fnWaitTest(
"Zero records language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oLanguage": {
"sZeroRecords": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sZeroRecords == "unit test"; }
);
oTest.fnWaitTest(
"Text is shown when empty table (after filtering)",
function () { oTable.fnFilter('nothinghere2'); },
function () {
if ( $('#example tbody tr td').length == 0 )
return false;
return $('#example tbody tr td')[0].innerHTML == "unit test"
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,100 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "oSearch" );
/* Note with my server-side scripts the regex option has no effect - this just runs that down */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Default values should be blank",
null,
function () {
var bReturn = oSettings.oPreviousSearch.sSearch == "" &&
!oSettings.oPreviousSearch.bRegex;
return bReturn;
}
);
/* This test might be considered iffy since the full object isn't given, but it's reasonable to
* expect DataTables to cope with this. It should just assumine regex false
*/
oTest.fnWaitTest(
"Search term only in object",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oSearch": {
"sSearch": "Mozilla"
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "1"; }
);
oTest.fnWaitTest(
"New search will kill old one",
function () {
oTable.fnFilter("Opera");
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Opera 7.0"; }
);
oTest.fnWaitTest(
"Search plain text term and escape regex true",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oSearch": {
"sSearch": "DS",
"bRegex": false
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Nintendo DS browser"; }
);
oTest.fnWaitTest(
"Search plain text term and escape regex false",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oSearch": {
"sSearch": "Opera",
"bRegex": true
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Opera 7.0"; }
);
oTest.fnWaitTest(
"Search regex text term and escape regex true",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"oSearch": {
"sSearch": "1.*",
"bRegex": false
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,23 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "sAjaxSource" );
/* Sanitfy check really - all the other tests blast this */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Server side is off by default",
null,
function () {
return oSettings.sAjaxSource == "../../../examples/examples_support/server_processing.php";
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,269 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "sDom" );
/* This is going to be brutal on the browser! There is a lot that can be tested here... */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Default DOM varaible",
null,
function () { return oSettings.sDom == "lfrtip"; }
);
oTest.fnWaitTest(
"Default DOM in document",
null,
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nLength &&
nNodes[2] == nFilter &&
nNodes[3] == nTable &&
nNodes[4] == nInfo &&
nNodes[5] == nPaging;
return bReturn;
}
);
oTest.fnWaitTest(
"Check example 1 in code propagates",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sDom": '<"wrapper"flipt>'
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.sDom == '<"wrapper"flipt>'; }
);
oTest.fnWaitTest(
"Check example 1 in DOM",
null,
function () {
var jqNodes = $('#demo div, #demo table');
var nNodes = [];
/* Strip the paging nodes */
for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
{
if ( jqNodes[i].getAttribute('id') != "example_previous" &&
jqNodes[i].getAttribute('id') != "example_next" )
{
nNodes.push( jqNodes[i] );
}
}
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var nCustomWrapper = $('div.wrapper')[0];
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nCustomWrapper &&
nNodes[2] == nFilter &&
nNodes[3] == nLength &&
nNodes[4] == nInfo &&
nNodes[5] == nPaging &&
nNodes[6] == nTable;
return bReturn;
}
);
oTest.fnWaitTest(
"Check example 2 in DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sDom": '<lf<t>ip>'
} );
},
function () {
var jqNodes = $('#demo div, #demo table');
var nNodes = [];
var nCustomWrappers = []
/* Strip the paging nodes */
for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
{
if ( jqNodes[i].getAttribute('id') != "example_previous" &&
jqNodes[i].getAttribute('id') != "example_next" )
{
nNodes.push( jqNodes[i] );
}
/* Only the two custom divs don't have class names */
if ( !jqNodes[i].getAttribute('class') )
{
nCustomWrappers.push( jqNodes[i] );
}
}
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nCustomWrappers[0] &&
nNodes[2] == nLength &&
nNodes[3] == nFilter &&
nNodes[4] == nCustomWrappers[1] &&
nNodes[5] == nTable &&
nNodes[6] == nInfo &&
nNodes[7] == nPaging;
return bReturn;
}
);
oTest.fnWaitTest(
"Check no length element",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sDom": 'frtip'
} );
},
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
null == nLength &&
nNodes[1] == nFilter &&
nNodes[2] == nTable &&
nNodes[3] == nInfo &&
nNodes[4] == nPaging;
return bReturn;
}
);
oTest.fnWaitTest(
"Check no filter element",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sDom": 'lrtip'
} );
},
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nLength &&
null == nFilter &&
nNodes[2] == nTable &&
nNodes[3] == nInfo &&
nNodes[4] == nPaging;
return bReturn;
}
);
/* Note we don't test for no table as this is not supported (and it would be fairly daft! */
oTest.fnWaitTest(
"Check no info element",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sDom": 'lfrtp'
} );
},
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nLength &&
nNodes[2] == nFilter &&
nNodes[3] == nTable &&
null == nInfo &&
nNodes[4] == nPaging;
return bReturn;
}
);
oTest.fnWaitTest(
"Check no paging element",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sDom": 'lfrti'
} );
},
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nLength &&
nNodes[2] == nFilter &&
nNodes[3] == nTable &&
nNodes[4] == nInfo &&
null == nPaging;
return bReturn;
}
);
oTest.fnComplete();
} );

View file

@ -0,0 +1,138 @@
// DATA_TEMPLATE: empty_table
oTest.fnStart( "sPaginationType" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php"
} );
var oSettings = oTable.fnSettings();
oTest.fnWaitTest(
"Check two button paging is the default",
null,
function () { return oSettings.sPaginationType == "two_button"; }
);
oTest.fnWaitTest(
"Check class is applied",
null,
function () { return $('#example_paginate').hasClass('paging_two_button'); }
);
oTest.fnWaitTest(
"Two div elements are in the wrapper",
null,
function () { return $('#example_paginate div').length == 2; }
);
oTest.fnWaitTest(
"We have the previous button",
null,
function () { return document.getElementById('example_previous'); }
);
oTest.fnWaitTest(
"We have the next button",
null,
function () { return document.getElementById('example_next'); }
);
oTest.fnWaitTest(
"Previous button is disabled",
null,
function () { return $('#example_previous').hasClass('paginate_disabled_previous'); }
);
oTest.fnWaitTest(
"Next button is enabled",
null,
function () { return $('#example_next').hasClass('paginate_enabled_next'); }
);
/* Don't test paging - that's done by the zero config test script. */
/* Two buttons paging */
var bComplete = false;
oTest.fnWaitTest(
"Can enabled full numbers paging",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/examples_support/server_processing.php",
"sPaginationType": "full_numbers",
"fnInitComplete": function () {
setTimeout( function () {
bComplete = true;
}, 500 );
}
} );
oSettings = oTable.fnSettings();
},
function () {
if ( bComplete )
return oSettings.sPaginationType == "full_numbers";
else
return false;
}
);
oTest.fnWaitTest(
"Check full numbers class is applied",
null,
function () { return $('#example_paginate').hasClass('paging_full_numbers'); }
);
var nFirst, nPrevious, nNext, nLast;
oTest.fnWaitTest(
"Jump to last page",
function () {
nFirst = $('div.dataTables_paginate span.first');
nPrevious = $('div.dataTables_paginate span.previous');
nNext = $('div.dataTables_paginate span.next');
nLast = $('div.dataTables_paginate span.last');
nLast.click();
},
function () {
return document.getElementById('example_info').innerHTML == "Showing 51 to 57 of 57 entries";
}
);
oTest.fnWaitTest(
"Go to two pages previous",
function () {
nPrevious.click();
nPrevious.click();
},
function () {
return document.getElementById('example_info').innerHTML == "Showing 31 to 40 of 57 entries";
}
);
oTest.fnWaitTest(
"Next (second last) page",
function () {
nNext.click();
},
function () {
return document.getElementById('example_info').innerHTML == "Showing 41 to 50 of 57 entries";
}
);
oTest.fnWaitTest(
"Jump to first page",
function () {
nFirst.click();
},
function () {
return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries";
}
);
oTest.fnComplete();
} );