--- a/media/unit_testing/tests_onhold/1_dom/aoColumns.fnRender.js +++ b/media/unit_testing/tests_onhold/1_dom/aoColumns.fnRender.js @@ -1,1 +1,175 @@ +// DATA_TEMPLATE: dom_data +oTest.fnStart( "aoColumns.fnRender" ); +$(document).ready( function () { + /* Check the default */ + var mTmp = 0; + var oTable = $('#example').dataTable( { + "aoColumns": [ + null, + { "fnRender": function (a) { + mTmp++; + return a.aData[a.iDataColumn]; + } }, + null, + null, + null + ] + } ); + var oSettings = oTable.fnSettings(); + + oTest.fnTest( + "Single column - fnRender is called once for each row", + null, + function () { return mTmp == 57; } + ); + + oTest.fnTest( + "Confirm that fnRender passes one argument (an object) with three parameters", + function () { + mTmp = true; + oSession.fnRestore(); + oTable = $('#example').dataTable( { + "aoColumns": [ + null, + { "fnRender": function (a) { + if ( arguments.length != 1 || typeof a.iDataRow=='undefined' || + typeof a.iDataColumn=='undefined' || typeof a.aData=='undefined' ) + { + mTmp = false; + } + return a.aData[a.iDataColumn]; + } }, + null, + null, + null + ] + } ); + }, + function () { return mTmp; } + ); + + oTest.fnTest( + "fnRender iDataColumn is row number", + function () { + var iCount = 0; + mTmp = true; + oSession.fnRestore(); + oTable = $('#example').dataTable( { + "aoColumns": [ + null, + { "fnRender": function (a) { + if ( iCount != a.iDataRow ) + { + mTmp = false; + } + iCount++; + return a.aData[a.iDataColumn]; + } }, + null, + null, + null + ] + } ); + }, + function () { return mTmp; } + ); + + oTest.fnTest( + "fnRender iDataColumn is the column", + function () { + mTmp = true; + oSession.fnRestore(); + oTable = $('#example').dataTable( { + "aoColumns": [ + null, + { "fnRender": function (a) { + if ( a.iDataColumn != 1 ) + { + mTmp = false; + } + return a.aData[a.iDataColumn]; + } }, + null, + null, + null + ] + } ); + }, + function () { return mTmp; } + ); + + oTest.fnTest( + "fnRender aData is data array of correct size", + function () { + mTmp = true; + oSession.fnRestore(); + oTable = $('#example').dataTable( { + "aoColumns": [ + null, + { "fnRender": function (a) { + if ( a.aData.length != 5 ) + { + mTmp = false; + } + return a.aData[a.iDataColumn]; + } }, + null, + null, + null + ] + } ); + }, + function () { return mTmp; } + ); + + oTest.fnTest( + "Passed back data is put into the DOM", + function () { + oSession.fnRestore(); + oTable = $('#example').dataTable( { + "aoColumns": [ + null, + { "fnRender": function (a) { + return 'unittest'; + } }, + null, + null, + null + ] + } ); + }, + function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'unittest'; } + ); + + oTest.fnTest( + "Passed back data is put into the DOM", + function () { + oSession.fnRestore(); + oTable = $('#example').dataTable( { + "aoColumns": [ + null, + null, + { "fnRender": function (a) { + return 'unittest1'; + } }, + { "fnRender": function (a) { + return 'unittest2'; + } }, + null + ] + } ); + }, + function () { + var bReturn = + $('#example tbody tr:eq(0) td:eq(2)').html() == 'unittest1' && + $('#example tbody tr:eq(0) td:eq(3)').html() == 'unittest2'; + return bReturn; } + ); + + + + + + oTest.fnComplete(); +} );