--- a/media/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js +++ b/media/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js @@ -1,1 +1,130 @@ +// 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(); +} );