mirror of
https://github.com/DataTables/DataTables.git
synced 2024-12-10 22:24:10 +01:00
190 lines
3.6 KiB
JavaScript
190 lines
3.6 KiB
JavaScript
// 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();
|
|
} ); |