1
0
mirror of https://github.com/DataTables/DataTables.git synced 2024-12-12 00:08:48 +01:00
DataTables/media/unit_testing/tests_onhold/1_dom/fnCookieCallback.js
Allan Jardine 85b923cff3 New: Cookie callback function (can be passed as an initialisation parameter) called fnCookieCallback, which allows the developer to modify the information stored in the cookie. Takes four arguments (sName, oData, sExpires, sPath) and expects a complete cookie string to be returned (with name, value, expires and path correctly formatted).
Updated: Now use jQuery's JSON parse function (in jQuery 1.4) rather than JSON.js

Fixed: State saving cookie used single quote strings in places (in correct JSON). This has now been addressed, and a work around in place (replace) until a sufficient period has passed
2010-08-20 18:52:16 +01:00

96 lines
2.2 KiB
JavaScript
Executable File

// 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 = sExpires.match(/GMT/);
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.fnComplete();
} );