// DATA_TEMPLATE: dom_data oTest.fnStart( "bInfiniteScroll" ); $(document).ready( function () { var oTable = $('#example').dataTable( { "bScrollInfinite": true, "sScrollY": "200px" } ); oTest.fnTest( "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.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( "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 240px adds another 10 rows", function () { $('div.dataTables_scrollBody').scrollTop(240); }, 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( "Filtering will drop back to 10 rows", function () { $('div.dataTables_scrollBody').scrollTop(0); 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.fnWaitTest( "Scroll after filtering adds 10", function () { $('div.dataTables_scrollBody').scrollTop(20); }, function () { return $('#example tbody tr').length == 20; } ); oTest.fnTest( "Get nodes after filtering", null, function () { return $('#example tbody>tr').length == 20; } ); oTest.fnTest( "Sorting will drop back to 10 rows", function () { 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.fnComplete(); } );