1 views_handler_sort_date.test public ViewsHandlerSortDateTest::testDateOrdering()

Tests numeric ordering of the result set.

File

core/modules/views/tests/handlers/views_handler_sort_date.test, line 146
Definition of ViewsHandlerSortDateTest.

Class

ViewsHandlerSortDateTest
Tests for core views_handler_sort_date handler.

Code

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);
    }
  }
}