1
0
mirror of https://github.com/DataTables/DataTables.git synced 2025-01-30 23:52:11 +01:00

New: Add unit tests for deferred loading with server-side processing

Remove: Deferred loading for Ajax sourced data - was incomplete and would be messy to fully implement
This commit is contained in:
Allan Jardine 2011-04-22 23:14:20 +01:00
parent f39dadda62
commit 503c3cfca5
2 changed files with 97 additions and 2 deletions

View File

@ -2305,7 +2305,7 @@
*/
function _fnInitalise ( oSettings )
{
var i, iLen, bDefer=oSettings.bDeferLoading, iAjaxStart=oSettings.iInitDisplayStart;
var i, iLen, iAjaxStart=oSettings.iInitDisplayStart;
/* Ensure that the table data is fully initialised */
if ( oSettings.bInitialised === false )
@ -2358,7 +2358,7 @@
}
/* if there is an ajax source load the data */
if ( oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide && !bDefer )
if ( oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide )
{
oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, [], function(json) {
var aData = json;

View File

@ -0,0 +1,95 @@
// DATA_TEMPLATE: deferred_table
/*
*/
oTest.fnStart( "Defer loading tests" );
$(document).ready( function () {
var gotServerData = false;
$('#example').dataTable( {
"iDeferLoading": 57,
"bServerSide": true,
"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
"fnServerData": function (url, data, fn) {
$.ajax( {
"url": url,
"data": data,
"success": function(json) {
gotServerData = true;
fn( json );
},
"dataType": "json",
"cache": false
} );
}
} );
oTest.fnWaitTest(
"10 rows shown on the first page",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnWaitTest(
"No request to the server yet",
null,
function () { return !gotServerData; }
);
oTest.fnTest(
"Information on zero config",
null,
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnWaitTest(
"Initial data order retained",
null,
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
oTest.fnWaitTest(
"Initial data order retained 2",
null,
function () { return $('#example tbody td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnWaitTest(
"Still no request to the server yet",
null,
function () { return !gotServerData; }
);
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(
"Now we've had a request",
null,
function () { return gotServerData; }
);
oTest.fnTest(
"Information after sort",
null,
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
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.fnComplete();
} );