diff DataTables-1.9.4/media/unit_testing/tests_onhold/6_delayed_rendering/fnHeaderCallback.js @ 0:ac5f9272033b draft

first upload
author saskia-hiltemann
date Tue, 01 Jul 2014 11:42:23 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DataTables-1.9.4/media/unit_testing/tests_onhold/6_delayed_rendering/fnHeaderCallback.js	Tue Jul 01 11:42:23 2014 -0400
@@ -0,0 +1,200 @@
+// DATA_TEMPLATE: empty_table
+oTest.fnStart( "fnHeaderCallback" );
+
+$(document).ready( function () {
+	/* Check the default */
+	var oTable = $('#example').dataTable( {
+		"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+		"bDeferRender": true
+	} );
+	var oSettings = oTable.fnSettings();
+	var mPass, bInit;
+	
+	oTest.fnWaitTest( 
+		"Default should be null",
+		null,
+		function () { return oSettings.fnHeaderCallback == null; }
+	);
+	
+	
+	oTest.fnWaitTest( 
+		"Five arguments passed",
+		function () {
+			oSession.fnRestore();
+			
+			mPass = -1;
+			bInit = false;
+			$('#example').dataTable( {
+				"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+				"bDeferRender": true,
+				"fnHeaderCallback": function ( ) {
+					mPass = arguments.length;
+				},
+				"fnInitComplete": function () {
+					bInit = true;
+				}
+			} );
+		},
+		function () { return mPass == 5 && bInit; }
+	);
+	
+	
+	/* The header callback is called once for the init and then when the data is added */
+	oTest.fnWaitTest( 
+		"fnHeaderCallback called once per draw",
+		function () {
+			oSession.fnRestore();
+			
+			mPass = 0;
+			bInit = false;
+			$('#example').dataTable( {
+				"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+				"bDeferRender": true,
+				"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
+					mPass++;
+				},
+				"fnInitComplete": function () {
+					bInit = true;
+				}
+			} );
+		},
+		function () { return mPass == 2 && bInit; }
+	);
+	
+	oTest.fnWaitTest( 
+		"fnRowCallback called on paging (i.e. another draw)",
+		function () { $('#example_next').click(); },
+		function () { return mPass == 3; }
+	);
+	
+	
+	oTest.fnWaitTest( 
+		"fnRowCallback allows us to alter row information",
+		function () {
+			oSession.fnRestore();
+			$('#example').dataTable( {
+				"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+				"bDeferRender": true,
+				"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
+					nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
+				}
+			} );
+		},
+		function () { return $('#example thead th:eq(0)').html() == "Displaying 10 records"; }
+	);
+	
+	
+	oTest.fnWaitTest( 
+		"iStart correct on first page",
+		function () {
+			oSession.fnRestore();
+			
+			mPass = true;
+			$('#example').dataTable( {
+				"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+				"bDeferRender": true,
+				"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
+					if ( iStart != 0 )
+					{
+						mPass = false;
+					}
+				}
+			} );
+		},
+		function () { return mPass; }
+	);
+	
+	
+	oTest.fnWaitTest( 
+		"iStart correct on second page",
+		function () {
+			oSession.fnRestore();
+			
+			mPass = false;
+			$('#example').dataTable( {
+				"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+				"bDeferRender": true,
+				"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
+					if ( iStart == 10 )
+					{
+						mPass = true;
+					}
+				},
+				"fnInitComplete": function () {
+					$('#example_next').click();
+				}
+			} );
+		},
+		function () { return mPass; }
+	);
+	
+	
+	oTest.fnWaitTest( 
+		"iEnd correct on second page",
+		function () {
+			oSession.fnRestore();
+			
+			mPass = false;
+			$('#example').dataTable( {
+				"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+				"bDeferRender": true,
+				"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
+					if ( iEnd == 20 )
+					{
+						mPass = true;
+					}
+				},
+				"fnInitComplete": function () {
+					$('#example_next').click();
+				}
+			} );
+		},
+		function () { return mPass; }
+	);
+	
+	
+	oTest.fnWaitTest( 
+		"aiDisplay length is full data when not filtered",
+		function () {
+			oSession.fnRestore();
+			
+			mPass = false;
+			$('#example').dataTable( {
+				"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+				"bDeferRender": true,
+				"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
+					if ( aiDisplay.length == 57 )
+					{
+						mPass = true;
+					}
+				}
+			} );
+		},
+		function () { return mPass; }
+	);
+	
+	oTest.fnWaitTest( 
+		"aiDisplay length is 9 when filtering on 'Mozilla'",
+		function () {
+			oSession.fnRestore();
+			
+			mPass = false;
+			oTable = $('#example').dataTable( {
+				"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+				"bDeferRender": true,
+				"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
+					if ( aiDisplay.length == 9 )
+					{
+						mPass = true;
+					}
+				}
+			} );
+			oTable.fnFilter( "Mozilla" );
+		},
+		function () { return mPass; }
+	);
+	
+	
+	
+	oTest.fnComplete();
+} );
\ No newline at end of file