X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=webapp%2Fresources%2Fdatatables-1.9.4%2Fmedia%2Funit_testing%2Ftests_onhold%2F5_ajax_objects%2FfnHeaderCallback.js;fp=webapp%2Fresources%2Fdatatables-1.9.4%2Fmedia%2Funit_testing%2Ftests_onhold%2F5_ajax_objects%2FfnHeaderCallback.js;h=321335ebe8b611e09c7c737b4e40b4546124f6da;hb=b24a507278fc81ae8e7642d5eeedc35e58697d7c;hp=0000000000000000000000000000000000000000;hpb=fd9caa94da7b40958c8f8baac6c9719bd11d9ddb;p=proteocache.git diff --git a/webapp/resources/datatables-1.9.4/media/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js b/webapp/resources/datatables-1.9.4/media/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js new file mode 100644 index 0000000..321335e --- /dev/null +++ b/webapp/resources/datatables-1.9.4/media/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js @@ -0,0 +1,254 @@ +// DATA_TEMPLATE: empty_table +oTest.fnStart( "fnHeaderCallback" ); + +$(document).ready( function () { + /* Check the default */ + var oTable = $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumns": [ + { "mData": "engine" }, + { "mData": "browser" }, + { "mData": "platform" }, + { "mData": "version" }, + { "mData": "grade" } + ] + } ); + var oSettings = oTable.fnSettings(); + var mPass, bInit; + + oTest.fnWaitTest( + "Default should be null", + null, + function () { return oSettings.fnHeaderCallback == null; } + ); + + + oTest.fnWaitTest( + "Five arguments passed", + function () { + oSession.fnRestore(); + + mPass = -1; + bInit = false; + $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumnDefs": [ + { "mData": "engine", "aTargets": [0] }, + { "mData": "browser", "aTargets": [1] }, + { "mData": "platform", "aTargets": [2] }, + { "mData": "version", "aTargets": [3] }, + { "mData": "grade", "aTargets": [4] } + ], + "fnHeaderCallback": function ( ) { + mPass = arguments.length; + }, + "fnInitComplete": function () { + bInit = true; + } + } ); + }, + function () { return mPass == 5 && bInit; } + ); + + + /* The header callback is called once for the init and then when the data is added */ + oTest.fnWaitTest( + "fnHeaderCallback called once per draw", + function () { + oSession.fnRestore(); + + mPass = 0; + bInit = false; + $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumnDefs": [ + { "mData": "engine", "aTargets": [0] }, + { "mData": "browser", "aTargets": [1] }, + { "mData": "platform", "aTargets": [2] }, + { "mData": "version", "aTargets": [3] }, + { "mData": "grade", "aTargets": [4] } + ], + "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) { + mPass++; + }, + "fnInitComplete": function () { + bInit = true; + } + } ); + }, + function () { return mPass == 2 && bInit; } + ); + + oTest.fnWaitTest( + "fnRowCallback called on paging (i.e. another draw)", + function () { $('#example_next').click(); }, + function () { return mPass == 3; } + ); + + + oTest.fnWaitTest( + "fnRowCallback allows us to alter row information", + function () { + oSession.fnRestore(); + $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumnDefs": [ + { "mData": "engine", "aTargets": [0] }, + { "mData": "browser", "aTargets": [1] }, + { "mData": "platform", "aTargets": [2] }, + { "mData": "version", "aTargets": [3] }, + { "mData": "grade", "aTargets": [4] } + ], + "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) { + nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records"; + } + } ); + }, + function () { return $('#example thead th:eq(0)').html() == "Displaying 10 records"; } + ); + + + oTest.fnWaitTest( + "iStart correct on first page", + function () { + oSession.fnRestore(); + + mPass = true; + $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumnDefs": [ + { "mData": "engine", "aTargets": [0] }, + { "mData": "browser", "aTargets": [1] }, + { "mData": "platform", "aTargets": [2] }, + { "mData": "version", "aTargets": [3] }, + { "mData": "grade", "aTargets": [4] } + ], + "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) { + if ( iStart != 0 ) + { + mPass = false; + } + } + } ); + }, + function () { return mPass; } + ); + + + oTest.fnWaitTest( + "iStart correct on second page", + function () { + oSession.fnRestore(); + + mPass = false; + $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumnDefs": [ + { "mData": "engine", "aTargets": [0] }, + { "mData": "browser", "aTargets": [1] }, + { "mData": "platform", "aTargets": [2] }, + { "mData": "version", "aTargets": [3] }, + { "mData": "grade", "aTargets": [4] } + ], + "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) { + if ( iStart == 10 ) + { + mPass = true; + } + }, + "fnInitComplete": function () { + $('#example_next').click(); + } + } ); + }, + function () { return mPass; } + ); + + + oTest.fnWaitTest( + "iEnd correct on second page", + function () { + oSession.fnRestore(); + + mPass = false; + $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumnDefs": [ + { "mData": "engine", "aTargets": [0] }, + { "mData": "browser", "aTargets": [1] }, + { "mData": "platform", "aTargets": [2] }, + { "mData": "version", "aTargets": [3] }, + { "mData": "grade", "aTargets": [4] } + ], + "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) { + if ( iEnd == 20 ) + { + mPass = true; + } + }, + "fnInitComplete": function () { + $('#example_next').click(); + } + } ); + }, + function () { return mPass; } + ); + + + oTest.fnWaitTest( + "aiDisplay length is full data when not filtered", + function () { + oSession.fnRestore(); + + mPass = false; + $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumnDefs": [ + { "mData": "engine", "aTargets": [0] }, + { "mData": "browser", "aTargets": [1] }, + { "mData": "platform", "aTargets": [2] }, + { "mData": "version", "aTargets": [3] }, + { "mData": "grade", "aTargets": [4] } + ], + "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) { + if ( aiDisplay.length == 57 ) + { + mPass = true; + } + } + } ); + }, + function () { return mPass; } + ); + + oTest.fnWaitTest( + "aiDisplay length is 9 when filtering on 'Mozilla'", + function () { + oSession.fnRestore(); + + mPass = false; + oTable = $('#example').dataTable( { + "sAjaxSource": "../../../examples/ajax/sources/objects.txt", + "aoColumnDefs": [ + { "mData": "engine", "aTargets": [0] }, + { "mData": "browser", "aTargets": [1] }, + { "mData": "platform", "aTargets": [2] }, + { "mData": "version", "aTargets": [3] }, + { "mData": "grade", "aTargets": [4] } + ], + "fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) { + if ( aiDisplay.length == 9 ) + { + mPass = true; + } + } + } ); + oTable.fnFilter( "Mozilla" ); + }, + function () { return mPass; } + ); + + + + oTest.fnComplete(); +} ); \ No newline at end of file