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