Prettier JQuery tables
[contractdashboard.git] / media / unit_testing / tests_onhold / 1_dom / bInfiniteScroll.js
blob:a/media/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js -> blob:b/media/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js
--- 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();
+} );