1.20.x database_test.test DatabaseSelectTableSortDefaultTestCase::testTableSortQueryFirst()

Confirm that if a tablesort's orderByHeader is called before another orderBy, that the header happens first.

File

modules/simpletest/tests/database_test.test, line 2470
Database tests.

Class

DatabaseSelectTableSortDefaultTestCase

Code

function testTableSortQueryFirst() {
  $sorts = array(
    array('field' => t('Task ID'), 'sort' => 'desc', 'first' => 'perform at superbowl', 'last' => 'eat'),
    array('field' => t('Task ID'), 'sort' => 'asc', 'first' => 'eat', 'last' => 'perform at superbowl'),
    array('field' => t('Task'), 'sort' => 'asc', 'first' => 'code', 'last' => 'sleep'),
    array('field' => t('Task'), 'sort' => 'desc', 'first' => 'sleep', 'last' => 'code'),
    // more elements here

  );

  foreach ($sorts as $sort) {
    $this->backdropGet('database_test/tablesort_first/', array('query' => array('order' => $sort['field'], 'sort' => $sort['sort'])));
    $data = json_decode($this->backdropGetContent());

    $first = array_shift($data->tasks);
    $last = array_pop($data->tasks);

    $this->assertEqual($first->task, $sort['first'], format_string('Items appear in the correct order sorting by @field @sort.', array('@field' => $sort['field'], '@sort' => $sort['sort'])));
    $this->assertEqual($last->task, $sort['last'], format_string('Items appear in the correct order sorting by @field @sort.', array('@field' => $sort['field'], '@sort' => $sort['sort'])));
  }
}