Вход Регистрация
Файл: datatables/media/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js
Строк: 230
<?php
// 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();
} );
?>
Онлайн: 1
Реклама