You are here

function DatabaseSelectTableSortDefaultTestCase::testTableSortQueryFirst in Drupal 7

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 2585

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',
    ),
  );
  foreach ($sorts as $sort) {
    $this
      ->drupalGet('database_test/tablesort_first/', array(
      'query' => array(
        'order' => $sort['field'],
        'sort' => $sort['sort'],
      ),
    ));
    $data = json_decode($this
      ->drupalGetContent());
    $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'],
    )));
  }
}