Definition of Drupal\system\Tests\Database\SelectTableSortDefaultTest.
<?php
/**
* @file
* Definition of Drupal\system\Tests\Database\SelectTableSortDefaultTest.
*/
namespace Drupal\system\Tests\Database;
/**
* Tests the tablesort query extender.
*/
class SelectTableSortDefaultTest extends DatabaseTestBase {
public static function getInfo() {
return array(
'name' => 'Tablesort query tests',
'description' => 'Test the tablesort query extender.',
'group' => 'Database',
);
}
/**
* Confirms 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.
*/
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.');
}
}
/**
* Confirms precedence of tablesorts headers.
*
* If a tablesort's orderByHeader is called before another orderBy, then its
* header happens first.
*/
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'],
)));
}
}
/**
* Confirms that no error is thrown if no sort is set in a tableselect.
*/
function testTableSortDefaultSort() {
$this
->drupalGet('database_test/tablesort_default_sort');
// Verify that the table was displayed. Just the header is checked for
// because if there were any fatal errors or exceptions in displaying the
// sorted table, it would not print the table.
$this
->assertText(t('Username'));
}
}
Name | Description |
---|---|
SelectTableSortDefaultTest | Tests the tablesort query extender. |