// DATA_TEMPLATE: empty_table oTest.fnStart( "sPaginationType" ); $(document).ready( function () { /* Check the default */ var oTable = $('#example').dataTable( { "sAjaxSource": "../../../examples/ajax/sources/objects.txt", "aoColumns": [ { "mDataProp": "engine" }, { "mDataProp": "browser" }, { "mDataProp": "platform" }, { "mDataProp": "version" }, { "mDataProp": "grade" } ] } ); 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 A elements are in the wrapper", null, function () { return $('#example_paginate a').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( { "sAjaxSource": "../../../examples/ajax/sources/objects.txt", "aoColumnDefs": [ { "mDataProp": "engine", "aTargets": [0] }, { "mDataProp": "browser", "aTargets": [1] }, { "mDataProp": "platform", "aTargets": [2] }, { "mDataProp": "version", "aTargets": [3] }, { "mDataProp": "grade", "aTargets": [4] } ], "sPaginationType": "full_numbers", "fnInitComplete": function () { bComplete = true; } } ); 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 a.first'); nPrevious = $('div.dataTables_paginate a.previous'); nNext = $('div.dataTables_paginate a.next'); nLast = $('div.dataTables_paginate a.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(); } );