function DatabaseSelectTableSortDefaultTestCase::testTableSortQuery

Confirm that a tablesort query returns the correct results.

Note that we have to make an HTTP request to a test page handler because the pager depends on GET parameters.

File

modules/simpletest/tests/database_test.test, line 2729

Class

DatabaseSelectTableSortDefaultTestCase

Code

function testTableSortQuery() {
    $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/', 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'], 'Items appear in the correct order.');
        $this->assertEqual($last->task, $sort['last'], 'Items appear in the correct order.');
    }
}

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