MDL-64784 core: update tablelib tests for explicit sort direction.
authorPaul Holden <pholden@greenhead.ac.uk>
Fri, 5 Apr 2019 10:53:33 +0000 (11:53 +0100)
committerPaul Holden <pholden@greenhead.ac.uk>
Fri, 5 Apr 2019 10:53:33 +0000 (11:53 +0100)
lib/tests/tablelib_test.php

index 9346e05..e43fdb1 100644 (file)
@@ -526,7 +526,6 @@ class core_tablelib_testcase extends basic_testcase {
     }
 
     public function test_can_be_reset() {
-
         // Table in its default state (as if seen for the first time), nothing to reset.
         $table = $this->prepare_table_for_reset_test(uniqid('tablelib_test_'));
         $table->setup();
@@ -538,21 +537,25 @@ class core_tablelib_testcase extends basic_testcase {
         $table->setup();
         $this->assertFalse($table->can_be_reset());
 
-        // Table explicitly sorted by the default column (reverses the order), can be reset.
+        // Table explicitly sorted by the default column & direction, nothing to reset.
         $table = $this->prepare_table_for_reset_test(uniqid('tablelib_test_'));
         $table->sortable(true, 'column1', SORT_DESC);
         $_GET['tsort'] = 'column1';
+        $_GET['tdir'] = SORT_DESC;
         $table->setup();
         unset($_GET['tsort']);
-        $this->assertTrue($table->can_be_reset());
+        unset($_GET['tdir']);
+        $this->assertFalse($table->can_be_reset());
 
-        // Table explicitly sorted twice by the default column (puts back to default order), nothing to reset.
+        // Table explicitly sorted twice by the default column & direction, nothing to reset.
         $table = $this->prepare_table_for_reset_test(uniqid('tablelib_test_'));
         $table->sortable(true, 'column1', SORT_DESC);
         $_GET['tsort'] = 'column1';
+        $_GET['tdir'] = SORT_DESC;
         $table->setup();
         $table->setup(); // Set up again to simulate the second page request.
         unset($_GET['tsort']);
+        unset($_GET['tdir']);
         $this->assertFalse($table->can_be_reset());
 
         // Table sorted by other than default column, can be reset.
@@ -563,6 +566,16 @@ class core_tablelib_testcase extends basic_testcase {
         unset($_GET['tsort']);
         $this->assertTrue($table->can_be_reset());
 
+        // Table sorted by other than default direction, can be reset.
+        $table = $this->prepare_table_for_reset_test(uniqid('tablelib_test_'));
+        $table->sortable(true, 'column1', SORT_DESC);
+        $_GET['tsort'] = 'column1';
+        $_GET['tdir'] = SORT_ASC;
+        $table->setup();
+        unset($_GET['tsort']);
+        unset($_GET['tdir']);
+        $this->assertTrue($table->can_be_reset());
+
         // Table sorted by the default column after another sorting previously selected.
         // This leads to different ORDER BY than just having a single sort defined, can be reset.
         $table = $this->prepare_table_for_reset_test(uniqid('tablelib_test_'));