--- a/media/unit_testing/tests_onhold/1_dom/fnCookieCallback.js +++ b/media/unit_testing/tests_onhold/1_dom/fnCookieCallback.js @@ -1,1 +1,97 @@ +// DATA_TEMPLATE: dom_data +oTest.fnStart( "Cookie callback" ); + +$(document).ready( function () { + var mPass; + /* Note that in order to be fully effective here for saving state, there would need to be a + * stringify function to serialise the data array + */ + + oTest.fnTest( + "null by default", + function () { + $('#example').dataTable(); + }, + function () { return $('#example').dataTable().fnSettings().fnCookieCallback == null; } + ); + + oTest.fnTest( + "Number of arguments", + function () { + $('#example').dataTable( { + "bDestroy": true, + "bStateSave": true, + "fnCookieCallback": function (sName, oData, sExpires, sPath) { + mPass = arguments.length; + return sName + "=; expires=" + sExpires +"; path=" + sPath; + } + } ); + }, + function () { return mPass == 4; } + ); + + oTest.fnTest( + "Name", + function () { + $('#example').dataTable( { + "bDestroy": true, + "bStateSave": true, + "fnCookieCallback": function (sName, oData, sExpires, sPath) { + mPass = sName=="SpryMedia_DataTables_example_dom_data.php"; + return sName + "=; expires=" + sExpires +"; path=" + sPath; + } + } ); + }, + function () { return mPass; } + ); + + oTest.fnTest( + "Data", + function () { + $('#example').dataTable( { + "bDestroy": true, + "bStateSave": true, + "fnCookieCallback": function (sName, oData, sExpires, sPath) { + mPass = typeof oData.iStart != 'undefined'; + return sName + "=; expires=" + sExpires +"; path=" + sPath; + } + } ); + }, + function () { return mPass; } + ); + + oTest.fnTest( + "Expires", + function () { + $('#example').dataTable( { + "bDestroy": true, + "bStateSave": true, + "fnCookieCallback": function (sName, oData, sExpires, sPath) { + mPass = typeof sExpires == 'string'; + return sName + "=; expires=" + sExpires +"; path=" + sPath; + } + } ); + }, + function () { return mPass; } + ); + + oTest.fnTest( + "Path", + function () { + $('#example').dataTable( { + "bDestroy": true, + "bStateSave": true, + "fnCookieCallback": function (sName, oData, sExpires, sPath) { + mPass = sPath.match(/media\/unit_testing\/templates/); + return sName + "=; expires=" + sExpires +"; path=" + sPath; + } + } ); + }, + function () { return mPass; } + ); + + + oTest.fnCookieDestroy( $('#example').dataTable() ); + oTest.fnComplete(); +} );