// DATA_TEMPLATE: dom_data oTest.fnStart( "Check behaviour of the data set functions that DataTables uses" ); $(document).ready( function () { // Slightly unusual test set this one, in that we don't really care about the DOM // but want to test the internal data handling functions but we do need a table to // get at the functions! var table = $('#example').dataTable(); var fn, test, o; // Object property access oTest.fnTest( "Create property", function () { fn = table.oApi._fnSetObjectDataFn('test'); o = {}; fn( o, true ); }, function () { return o.test } ); oTest.fnTest( "Single property doesn't kill other properties", function () { fn = table.oApi._fnSetObjectDataFn('test'); o = { "test2": false }; fn( o, true ); }, function () { return o.test && o.test2===false; } ); oTest.fnTest( "Single property overwrite old property", function () { fn = table.oApi._fnSetObjectDataFn('test'); o = { "test": false, "test2": false }; fn( o, true ); }, function () { return o.test && o.test2===false; } ); // Nested oTest.fnTest( "Create nested property", function () { fn = table.oApi._fnSetObjectDataFn('test.inner'); o = { "test": {} }; fn( o, true ); }, function () { return o.test.inner } ); oTest.fnTest( "Deep create nested property", function () { fn = table.oApi._fnSetObjectDataFn('test.inner'); o = {}; fn( o, true ); }, function () { return o.test.inner } ); oTest.fnTest( "Nested property doesn't kill other properties", function () { fn = table.oApi._fnSetObjectDataFn('test.inner'); o = { "test": { "test2": false } }; fn( o, true ); }, function () { return o.test.inner && o.test.test2===false; } ); oTest.fnTest( "Single property overwrite old property", function () { fn = table.oApi._fnSetObjectDataFn('nested.test'); o = { "nested": { "test": false, "test2": false } }; fn( o, true ); }, function () { return o.nested.test && o.nested.test2===false; } ); // Set arrays / objects oTest.fnTest( "Create object", function () { fn = table.oApi._fnSetObjectDataFn('test'); o = {}; fn( o, {"a":true, "b":false} ); }, function () { return o.test.a && o.test.b===false } ); oTest.fnTest( "Create nested object", function () { fn = table.oApi._fnSetObjectDataFn('nested.test'); o = {}; fn( o, {"a":true, "b":false} ); }, function () { return o.nested.test.a && o.nested.test.b===false } ); oTest.fnTest( "Create array", function () { fn = table.oApi._fnSetObjectDataFn('test'); o = {}; fn( o, [1,2,3] ); }, function () { return o.test[0]===1 && o.test[2]===3 } ); oTest.fnTest( "Create nested array", function () { fn = table.oApi._fnSetObjectDataFn('nested.test'); o = {}; fn( o, [1,2,3] ); }, function () { return o.nested.test[0]===1 && o.nested.test[2]===3 } ); // Array notation oTest.fnTest( "Create array of objects", function () { fn = table.oApi._fnSetObjectDataFn('test[].a'); o = {}; fn( o, [1,2,3] ); }, function () { return o.test.length===3 && o.test[0].a===1 && o.test[1].a===2; } ); oTest.fnTest( "Create array of nested objects", function () { fn = table.oApi._fnSetObjectDataFn('test[].a.b'); o = {}; fn( o, [1,2,3] ); }, function () { return o.test.length===3 && o.test[0].a.b===1 && o.test[1].a.b===2; } ); oTest.fnTest( "Create array", function () { fn = table.oApi._fnSetObjectDataFn('test[]'); o = {}; fn( o, [1,2,3] ); }, function () { return o.test.length===3 && o.test[0]===1 && o.test[1]===2; } ); oTest.fnComplete(); } );