--- a/media/unit_testing/tests_onhold/1_dom/aoColumns.bSortable.js +++ b/media/unit_testing/tests_onhold/1_dom/aoColumns.bSortable.js @@ -1,1 +1,105 @@ +// DATA_TEMPLATE: dom_data +oTest.fnStart( "aoColumns.bSortable" ); +$(document).ready( function () { + /* Check the default */ + var oTable = $('#example').dataTable(); + var oSettings = oTable.fnSettings(); + + oTest.fnTest( + "All columns are sortable by default", + function () { $('#example thead th:eq(1)').click(); }, + function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "All others"; } + ); + + oTest.fnTest( + "Can disable sorting from one column", + function () { + oSession.fnRestore(); + $('#example').dataTable( { + "aoColumns": [ + null, + { "bSortable": false }, + null, + null, + null + ] + } ); + $('#example thead th:eq(1)').click(); + }, + function () { return $('#example tbody tr:eq(0) td:eq(1)').html() != "All others"; } + ); + + oTest.fnTest( + "Disabled column has no sorting class", + null, + function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") == false; } + ); + + oTest.fnTest( + "Other columns can still sort", + function () { + $('#example thead th:eq(4)').click(); + $('#example thead th:eq(4)').click(); + }, + function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == "X"; } + ); + + oTest.fnTest( + "Disable sorting on multiple columns - no sorting classes", + function () { + oSession.fnRestore(); + $('#example').dataTable( { + "aoColumns": [ + null, + { "bSortable": false }, + null, + { "bSortable": false }, + null + ] + } ); + }, + function () { + var bReturn = + $('#example thead th:eq(1)').hasClass("sorting") || + $('#example thead th:eq(3)').hasClass("sorting") + return bReturn == false; + } + ); + + oTest.fnTest( + "Sorting on disabled column 1 has no effect", + function () { + $('#example thead th:eq(1)').click(); + }, + function () { return $('#example tbody tr:eq(0) td:eq(1)').html() != "All others"; } + ); + + oTest.fnTest( + "Sorting on disabled column 2 has no effect", + function () { + $('#example thead th:eq(3)').click(); + }, + function () { return $('#example tbody tr:eq(0) td:eq(3)').html() != "-"; } + ); + + oTest.fnTest( + "Second sort on disabled column 2 has no effect", + function () { + $('#example thead th:eq(3)').click(); + }, + function () { return $('#example tbody tr:eq(0) td:eq(3)').html() != "-"; } + ); + + oTest.fnTest( + "Even with multiple disabled sorting columns other columns can still sort", + function () { + $('#example thead th:eq(4)').click(); + $('#example thead th:eq(4)').click(); + }, + function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == "X"; } + ); + + + oTest.fnComplete(); +} );