--- /dev/null
+// DATA_TEMPLATE: dom_data
+oTest.fnStart( "sScrollX / Y" );
+
+
+$(document).ready( function () {
+ // Force some x scrolling
+ $('body').css('white-space', 'nowrap');
+ $('#container').css('width', '400px');
+
+ var oTable = $('#example').dataTable( {
+ "sScrollX": "100%",
+ "sScrollY": "200px",
+ "bPaginate": false
+ } );
+
+ oTest.fnWaitTest(
+ "Header follows x-scrolling",
+ function () { $('div.dataTables_scrollBody').scrollLeft(20); },
+ function () { return $('div.dataTables_scrollHead').scrollLeft() == 20; }
+ );
+
+ oTest.fnWaitTest(
+ "Footer follows x-scrolling",
+ null,
+ function () { return $('div.dataTables_scrollFoot').scrollLeft() == 20; }
+ );
+
+ oTest.fnWaitTest(
+ "y-scrolling has no effect on header",
+ function () { $('div.dataTables_scrollBody').scrollTop(20); },
+ function () { return $('div.dataTables_scrollHead').scrollLeft() == 20; }
+ );
+
+ oTest.fnWaitTest(
+ "Filtering results in sets y-scroll back to 0",
+ function () { oTable.fnFilter('1') },
+ function () { return $('div.dataTables_scrollBody').scrollTop() == 0; }
+ );
+
+ oTest.fnWaitTest(
+ "Filtering has no effect on x-scroll",
+ null,
+ function () { return $('div.dataTables_scrollBody').scrollLeft() == 20; }
+ );
+
+ oTest.fnWaitTest(
+ "Full x-scroll has header track all the way with it",
+ function () {
+ $('div.dataTables_scrollBody').scrollLeft(
+ $('#example').width() - $('div.dataTables_scrollBody')[0].clientWidth
+ );
+ },
+ function () { return $('div.dataTables_scrollBody').scrollLeft() == $('div.dataTables_scrollHead').scrollLeft(); }
+ );
+
+ oTest.fnTest(
+ "Footer also tracked all the way",
+ null,
+ function () { return $('div.dataTables_scrollBody').scrollLeft() == $('div.dataTables_scrollFoot').scrollLeft(); }
+ );
+
+ oTest.fnComplete();
+} );
\ No newline at end of file