--- /dev/null
+// 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();
+} );
\ No newline at end of file