Prettier JQuery tables
[contractdashboard.git] / media / unit_testing / tests_onhold / 3_ajax / bSortClasses.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// DATA_TEMPLATE: empty_table
oTest.fnStart( "bSortClasses" );
 
$(document).ready( function () {
        /* Check the default */
        $('#example').dataTable( {
                "sAjaxSource": "../../../examples/examples_support/json_source.txt"
        } );
        
        oTest.fnWaitTest( 
                "Sorting classes are applied by default",
                null,
                function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
        );
        
        oTest.fnWaitTest( 
                "Sorting classes are applied to all required cells",
                null,
                function () { return $('#example tbody tr:eq(7) td:eq(0)').hasClass('sorting_1'); }
        );
        
        oTest.fnWaitTest( 
                "Sorting classes are not applied to non-sorting columns",
                null,
                function () { return $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_1') == false; }
        );
        
        oTest.fnWaitTest( 
                "Sorting multi-column - add column 1",
                function () { 
                        oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
                function () {
                        return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
                                                 $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2');
                }
        );
        
        oTest.fnWaitTest( 
                "Sorting multi-column - add column 2",
                function () { 
                        oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
                function () {
                        return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
                                                 $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
                                                 $('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3');
                }
        );
        
        oTest.fnWaitTest( 
                "Sorting multi-column - add column 3",
                function () { 
                        oDispacher.click( $('#example thead th:eq(3)')[0], { 'shift': true } );
                },
                function () {
                        return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
                                                 $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
                                                 $('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') &&
                                                 $('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3');
                }
        );
        
        oTest.fnWaitTest( 
                "Remove sorting classes on single column sort",
                function () { 
                        $('#example thead th:eq(4)').click();
                },
                function () {
                        return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
                                                 $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
                                                 $('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false &&
                                                 $('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3') == false;
                }
        );
        
        oTest.fnWaitTest( 
                "Sorting class 1 was added",
                null,
                function () { return $('#example tbody tr:eq(1) td:eq(4)').hasClass('sorting_1'); }
        );
        
        
        /* Check can disable */
        oTest.fnWaitTest( 
                "Sorting classes can be disabled",
                function () {
                        oSession.fnRestore();
                        $('#example').dataTable( {
                                "sAjaxSource": "../../../examples/examples_support/json_source.txt",
                                "bSortClasses": false
                        } );
                },
                function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false; }
        );
        
        oTest.fnWaitTest( 
                "Sorting classes disabled - add column 1 - no effect",
                function () { 
                        oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
                function () {
                        return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
                                                 $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false;
                }
        );
        
        oTest.fnWaitTest( 
                "Sorting classes disabled - add column 2 - no effect",
                function () { 
                        oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
                function () {
                        return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
                                                 $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
                                                 $('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false;
                }
        );
        
        
        /* Enable makes no difference */
        oTest.fnWaitTest( 
                "Sorting classes enabled override",
                function () {
                        oSession.fnRestore();
                        $('#example').dataTable( {
                                "sAjaxSource": "../../../examples/examples_support/json_source.txt",
                                "bSortClasses": true
                        } );
                },
                function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
        );
        
        
        oTest.fnComplete();
} );