function ArgumentDefaultTest::testArgumentDefaultDate
Tests current date default argument.
See also
\Drupal\views\Plugin\views\argument_default\Date
File
-
core/
modules/ views/ tests/ src/ Functional/ Plugin/ ArgumentDefaultTest.php, line 146
Class
- ArgumentDefaultTest
- Tests pluggable argument_default for views.
Namespace
Drupal\Tests\views\Functional\PluginCode
public function testArgumentDefaultDate() : void {
/** @var \Drupal\Core\Datetime\DateFormatterInterface $date_formatter */
$date_formatter = \Drupal::service('date.formatter');
$request_time = \Drupal::requestStack()->getCurrentRequest()->server
->get('REQUEST_TIME');
$view = Views::getView('test_argument_default_date');
$view->setDisplay();
$view->initHandlers();
$expected = $date_formatter->format($request_time, 'custom', 'Y-m-d');
$this->assertEquals($expected, $view->argument['null']
->getDefaultArgument(), 'Current date argument should be used by default.');
// Update the View to use the Ym format argument.
$view = Views::getView('test_argument_default_date');
$view->setDisplay();
$view->displayHandlers
->get('default')
->overrideOption('arguments', [
'null' => [
'id' => 'year_month',
'table' => 'node_field_data',
'field' => 'created_year_month',
'plugin_id' => 'date_year_month',
'default_argument_type' => 'date',
],
]);
$view->initHandlers();
$expected = $date_formatter->format($request_time, 'custom', 'Ym');
$this->assertEquals($expected, $view->argument['null']
->getDefaultArgument(), 'Current date argument should be used by default.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.