1
0
mirror of https://github.com/DataTables/DataTables.git synced 2024-12-03 15:24:10 +01:00
DataTables/media/unit_testing/tests_onhold/4_server-side/fnCreatedRow.js
Allan Jardine cb014e81d7 New: Add unit tests for fnCreatedCell and fnCreatedRow
New: New init option fnCreatedRow - very similar to fnCreatedCell but in this case used for TR elements
Updated: fnCreatedCell now also gets the column index passed in
2011-12-28 11:12:30 +00:00

148 lines
3.2 KiB
JavaScript
Executable File

// DATA_TEMPLATE: empty_table
oTest.fnStart( "fnCreatedRow tests" );
$(document).ready( function () {
var tmp = 0;
var complete = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
fnCreatedRow: function () {
tmp++;
}
} );
oTest.fnWaitTest(
"Row created is called once for each row on init",
null,
function () { return tmp===10; }
);
oTest.fnWaitTest(
"Created is called back on other draws",
function () { $('#example th:eq(1)').click(); },
function () { return tmp===20; }
);
oTest.fnWaitTest(
"Three arguments for the function",
function () {
oSession.fnRestore();
tmp = true;
complete = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
fnCreatedRow: function () {
if ( arguments.length !== 3 ) {
tmp = false;
}
},
fnInitComplete: function () {
complete = true;
}
} );
},
function () { return (tmp && complete); }
);
oTest.fnWaitTest(
"First argument is a TR element",
function () {
oSession.fnRestore();
tmp = true;
complete = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
fnCreatedRow: function () {
if ( arguments[0].nodeName !== "TR" ) {
tmp = false;
}
},
fnInitComplete: function () {
complete = true;
}
} );
},
function () { return (tmp && complete); }
);
oTest.fnWaitTest(
"Second argument is an array with 5 elements",
function () {
oSession.fnRestore();
tmp = true;
complete = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
fnCreatedRow: function () {
if ( arguments[1].length !== 5 ) {
tmp = false;
}
},
fnInitComplete: function () {
complete = true;
}
} );
},
function () { return (tmp && complete); }
);
oTest.fnWaitTest(
"Third argument is the data source for the row",
function () {
oSession.fnRestore();
tmp = true;
complete = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
fnCreatedRow: function () {
if ( arguments[1] !== this.fnSettings().aoData[ arguments[2] ]._aData ) {
tmp = false;
}
},
fnInitComplete: function () {
complete = true;
}
} );
},
function () { return (tmp && complete); }
);
oTest.fnWaitTest(
"TR element is tied to the correct data",
function () {
oSession.fnRestore();
tmp = false;
complete = false;
$('#example').dataTable( {
"bServerSide": true,
"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
fnCreatedRow: function (tr, data, index) {
if ( data[1] === "Firefox 1.0" ) {
if ( $('td:eq(3)', tr).html() == "1.7" ) {
tmp = true;
}
}
},
fnInitComplete: function () {
complete = true;
}
} );
},
function () { return (tmp && complete); }
);
oTest.fnComplete();
} );