text: // 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();
  });