function FilterDateTest::testDateOffsets

Same name in this branch
  1. 11.x core/modules/datetime/tests/src/Kernel/Views/FilterDateTest.php \Drupal\Tests\datetime\Kernel\Views\FilterDateTest::testDateOffsets()
Same name and namespace in other branches
  1. 9 core/modules/datetime_range/tests/src/Kernel/Views/FilterDateTest.php \Drupal\Tests\datetime_range\Kernel\Views\FilterDateTest::testDateOffsets()
  2. 9 core/modules/datetime/tests/src/Kernel/Views/FilterDateTest.php \Drupal\Tests\datetime\Kernel\Views\FilterDateTest::testDateOffsets()
  3. 8.9.x core/modules/datetime_range/tests/src/Kernel/Views/FilterDateTest.php \Drupal\Tests\datetime_range\Kernel\Views\FilterDateTest::testDateOffsets()
  4. 8.9.x core/modules/datetime/tests/src/Kernel/Views/FilterDateTest.php \Drupal\Tests\datetime\Kernel\Views\FilterDateTest::testDateOffsets()
  5. 10 core/modules/datetime_range/tests/src/Kernel/Views/FilterDateTest.php \Drupal\Tests\datetime_range\Kernel\Views\FilterDateTest::testDateOffsets()
  6. 10 core/modules/datetime/tests/src/Kernel/Views/FilterDateTest.php \Drupal\Tests\datetime\Kernel\Views\FilterDateTest::testDateOffsets()

Tests offsets with date-only fields.

File

core/modules/datetime_range/tests/src/Kernel/Views/FilterDateTest.php, line 121

Class

FilterDateTest
Tests date-only fields.

Namespace

Drupal\Tests\datetime_range\Kernel\Views

Code

public function testDateOffsets() : void {
    $view = Views::getView('test_filter_datetime');
    $field_start = static::$fieldName . '_value';
    $field_end = static::$fieldName . '_end_value';
    // Test simple operations.
    $view->initHandlers();
    // Search nodes with:
    // - start date greater than or equal to 'yesterday'.
    // - end date lower than or equal to 'today'.
    // Expected results: nodes 0 and 1.
    $view->filter[$field_start]->operator = '>=';
    $view->filter[$field_start]->value['type'] = 'offset';
    $view->filter[$field_start]->value['value'] = '-1 day';
    $view->filter[$field_end]->operator = '<=';
    $view->filter[$field_end]->value['type'] = 'offset';
    $view->filter[$field_end]->value['value'] = 'now';
    $view->setDisplay('default');
    $this->executeView($view);
    $expected_result = [
        [
            'nid' => $this->nodes[0]
                ->id(),
        ],
        [
            'nid' => $this->nodes[1]
                ->id(),
        ],
    ];
    $this->assertIdenticalResultset($view, $expected_result, $this->map);
    $view->destroy();
    // Search nodes with:
    // - start date greater than or equal to 'yesterday'.
    // - end date greater than 'today'.
    // Expected results: node 2.
    $view->initHandlers();
    $view->filter[$field_start]->operator = '>=';
    $view->filter[$field_start]->value['type'] = 'offset';
    $view->filter[$field_start]->value['value'] = '-1 day';
    $view->filter[$field_end]->operator = '>';
    $view->filter[$field_end]->value['type'] = 'offset';
    $view->filter[$field_end]->value['value'] = 'now';
    $view->setDisplay('default');
    $this->executeView($view);
    $expected_result = [
        [
            'nid' => $this->nodes[2]
                ->id(),
        ],
    ];
    $this->assertIdenticalResultset($view, $expected_result, $this->map);
}

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