function SelectTableSortDefaultTest::testTableSortQueryFirst

Same name and namespace in other branches
  1. 9 core/modules/system/tests/src/Functional/Database/SelectTableSortDefaultTest.php \Drupal\Tests\system\Functional\Database\SelectTableSortDefaultTest::testTableSortQueryFirst()
  2. 8.9.x core/modules/system/tests/src/Functional/Database/SelectTableSortDefaultTest.php \Drupal\Tests\system\Functional\Database\SelectTableSortDefaultTest::testTableSortQueryFirst()
  3. 11.x core/modules/system/tests/src/Functional/Database/SelectTableSortDefaultTest.php \Drupal\Tests\system\Functional\Database\SelectTableSortDefaultTest::testTableSortQueryFirst()

Confirms precedence of tablesorts headers.

If a tablesort's orderByHeader is called before another orderBy, then its header happens first.

File

core/modules/system/tests/src/Functional/Database/SelectTableSortDefaultTest.php, line 53

Class

SelectTableSortDefaultTest
Tests the tablesort query extender.

Namespace

Drupal\Tests\system\Functional\Database

Code

public function testTableSortQueryFirst() : void {
  $sorts = [
    [
      'field' => 'Task ID',
      'sort' => 'desc',
      'first' => 'perform at superbowl',
      'last' => 'eat',
    ],
    [
      'field' => 'Task ID',
      'sort' => 'asc',
      'first' => 'eat',
      'last' => 'perform at superbowl',
    ],
    [
      'field' => 'Task',
      'sort' => 'asc',
      'first' => 'code',
      'last' => 'sleep',
    ],
    [
      'field' => 'Task',
      'sort' => 'desc',
      'first' => 'sleep',
      'last' => 'code',
    ],
  ];
  foreach ($sorts as $sort) {
    $this->drupalGet('database_test/tablesort_first/', [
      'query' => [
        'order' => $sort['field'],
        'sort' => $sort['sort'],
      ],
    ]);
    $data = json_decode($this->getSession()
      ->getPage()
      ->getContent());
    $first = array_shift($data->tasks);
    $last = array_pop($data->tasks);
    $this->assertEquals($sort['first'], $first->task, "Items appear in the correct order sorting by {$sort['field']} {$sort['sort']}.");
    $this->assertEquals($sort['last'], $last->task, "Items appear in the correct order sorting by {$sort['field']} {$sort['sort']}.");
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.