123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- <?php
- /**
- * @file
- * Definition of ViewsHandlerSortDateTest.
- */
- /**
- * Tests for core views_handler_sort_date handler.
- */
- class ViewsHandlerSortDateTest extends ViewsSqlTest {
- public static function getInfo() {
- return array(
- 'name' => 'Sort: date',
- 'description' => 'Test the core views_handler_sort_date handler.',
- 'group' => 'Views Handlers',
- );
- }
- protected function expectedResultSet($granularity, $reverse = TRUE) {
- $expected = array();
- if (!$reverse) {
- switch ($granularity) {
- case 'second':
- $expected = array(
- array('name' => 'John'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- array('name' => 'Ringo'),
- array('name' => 'George'),
- );
- break;
- case 'minute':
- $expected = array(
- array('name' => 'John'),
- array('name' => 'Paul'),
- array('name' => 'Ringo'),
- array('name' => 'Meredith'),
- array('name' => 'George'),
- );
- break;
- case 'hour':
- $expected = array(
- array('name' => 'John'),
- array('name' => 'Ringo'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- array('name' => 'George'),
- );
- break;
- case 'day':
- $expected = array(
- array('name' => 'John'),
- array('name' => 'Ringo'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- array('name' => 'George'),
- );
- break;
- case 'month':
- $expected = array(
- array('name' => 'John'),
- array('name' => 'George'),
- array('name' => 'Ringo'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- );
- break;
- case 'year':
- $expected = array(
- array('name' => 'John'),
- array('name' => 'George'),
- array('name' => 'Ringo'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- );
- break;
- }
- }
- else {
- switch ($granularity) {
- case 'second':
- $expected = array(
- array('name' => 'George'),
- array('name' => 'Ringo'),
- array('name' => 'Meredith'),
- array('name' => 'Paul'),
- array('name' => 'John'),
- );
- break;
- case 'minute':
- $expected = array(
- array('name' => 'George'),
- array('name' => 'Ringo'),
- array('name' => 'Meredith'),
- array('name' => 'Paul'),
- array('name' => 'John'),
- );
- break;
- case 'hour':
- $expected = array(
- array('name' => 'George'),
- array('name' => 'Ringo'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- array('name' => 'John'),
- );
- break;
- case 'day':
- $expected = array(
- array('name' => 'George'),
- array('name' => 'John'),
- array('name' => 'Ringo'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- );
- break;
- case 'month':
- $expected = array(
- array('name' => 'John'),
- array('name' => 'George'),
- array('name' => 'Ringo'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- );
- break;
- case 'year':
- $expected = array(
- array('name' => 'John'),
- array('name' => 'George'),
- array('name' => 'Ringo'),
- array('name' => 'Paul'),
- array('name' => 'Meredith'),
- );
- break;
- }
- }
- return $expected;
- }
- /**
- * Tests numeric ordering of the result set.
- */
- public function testDateOrdering() {
- foreach (array('second', 'minute', 'hour', 'day', 'month', 'year') as $granularity) {
- foreach (array(FALSE, TRUE) as $reverse) {
- $view = $this->getBasicView();
- // Change the fields.
- $view->display['default']->handler->override_option('fields', array(
- 'name' => array(
- 'id' => 'name',
- 'table' => 'views_test',
- 'field' => 'name',
- 'relationship' => 'none',
- ),
- 'created' => array(
- 'id' => 'created',
- 'table' => 'views_test',
- 'field' => 'created',
- 'relationship' => 'none',
- ),
- ));
- // Change the ordering
- $view->display['default']->handler->override_option('sorts', array(
- 'created' => array(
- 'id' => 'created',
- 'table' => 'views_test',
- 'field' => 'created',
- 'relationship' => 'none',
- 'granularity' => $granularity,
- 'order' => $reverse ? 'DESC' : 'ASC',
- ),
- 'id' => array(
- 'id' => 'id',
- 'table' => 'views_test',
- 'field' => 'id',
- 'relationship' => 'none',
- 'order' => 'ASC',
- ),
- ));
- // Execute the view.
- $this->executeView($view);
- // Verify the result.
- $this->assertEqual(count($this->dataSet()), count($view->result), t('The number of returned rows match.'));
- $this->assertIdenticalResultset($view, $this->expectedResultSet($granularity, $reverse), array(
- 'views_test_name' => 'name',
- ), t('Result is returned correctly when ordering by granularity @granularity, @reverse.', array('@granularity' => $granularity, '@reverse' => $reverse ? t('reverse') : t('forward'))));
- $view->destroy();
- unset($view);
- }
- }
- }
- }
|