// DATA_TEMPLATE: dom_data oTest.fnStart( "2746 - Stable sorting" ); $(document).ready( function () { $('#example').dataTable(); oTest.fnTest( "Initial sort", null, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0'; return ret; } ); oTest.fnTest( "Reserve initial sort", function () { $('#example thead th:eq(0)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Webkit' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'Safari 1.2' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 1.3' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0'; return ret; } ); oTest.fnTest( "Reserve to go back to initial sort sort", function () { $('#example thead th:eq(0)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0'; return ret; } ); oTest.fnTest( "Reserve initial sort again", function () { $('#example thead th:eq(0)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Webkit' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'Safari 1.2' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 1.3' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0'; return ret; } ); oTest.fnTest( "And once more back to the initial sort", function () { $('#example thead th:eq(0)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0'; return ret; } ); oTest.fnTest( "Sort on second column", function () { $('#example thead th:eq(1)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'AOL browser (AOL desktop)' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.0'; return ret; } ); oTest.fnTest( "Reserve sort on second column", function () { $('#example thead th:eq(1)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'Seamonkey 1.1' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 3.0' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0'; return ret; } ); oTest.fnTest( "And back to asc sorting on second column", function () { $('#example thead th:eq(1)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'AOL browser (AOL desktop)' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.0'; return ret; } ); oTest.fnTest( "Sort on third column, having now sorted on second", function () { $('#example thead th:eq(2)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Misc' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Dillo 0.8' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'NetFront 3.1'; return ret; } ); oTest.fnTest( "Reserve sort on third column", function () { $('#example thead th:eq(2)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Misc' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'IE Mobile' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Internet Explorer 7' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'AOL browser (AOL desktop)'; return ret; } ); oTest.fnTest( "Return sorting on third column to asc", function () { $('#example thead th:eq(2)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Misc' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Dillo 0.8' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'NetFront 3.1'; return ret; } ); oTest.fnTest( "Sort on first column having sorted on second then third columns", function () { $('#example thead th:eq(0)').click(); }, function () { var ret = $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' && $('#example tbody tr:eq(0) td:eq(1)').html() == 'Epiphany 2.20' && $('#example tbody tr:eq(1) td:eq(1)').html() == 'Camino 1.0' && $('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.5'; return ret; } ); oTest.fnComplete(); } );