--- /dev/null
+// 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();
+} );
\ No newline at end of file