function DatetimeElementFormTest::testRangeValidate
Tests that year range is validated.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Datetime/ DatetimeElementFormTest.php, line 241
Class
- DatetimeElementFormTest
- Tests DatetimeElement functionality.
Namespace
Drupal\KernelTests\Core\DatetimeCode
public function testRangeValidate() : void {
// Tests with a date after maximum.
$formState = new FormState();
$formState->setValue([
'range_datetime_element',
'date',
], '4000-01-01');
$formState->setValue([
'range_datetime_element',
'time',
], '10:10');
$form = \Drupal::formBuilder()->getForm($this);
\Drupal::formBuilder()->submitForm($this, $formState);
$this->assertEquals('The range_datetime_element date is invalid. Date should be in the 1850-3000 year range.', $formState->getError($form['range_datetime_element']));
// Tests with a date before minimum.
$formState = new FormState();
$formState->setValue([
'range_datetime_element',
'date',
], '1000-01-01');
$formState->setValue([
'range_datetime_element',
'time',
], '10:10');
$form = \Drupal::formBuilder()->getForm($this);
\Drupal::formBuilder()->submitForm($this, $formState);
$this->assertEquals('The range_datetime_element date is invalid. Date should be in the 1850-3000 year range.', $formState->getError($form['range_datetime_element']));
// Tests with a date barely outside range.
$formState = new FormState();
$formState->setValue([
'range_datetime_element',
'date',
], '3001-01-01');
$formState->setValue([
'range_datetime_element',
'time',
], '00:00');
$form = \Drupal::formBuilder()->getForm($this);
\Drupal::formBuilder()->submitForm($this, $formState);
$this->assertEquals('The range_datetime_element date is invalid. Date should be in the 1850-3000 year range.', $formState->getError($form['range_datetime_element']));
// Tests with a date inside range.
$formState = new FormState();
$formState->setValue([
'range_datetime_element',
'date',
], '2000-01-01');
$formState->setValue([
'range_datetime_element',
'time',
], '10:10');
\Drupal::formBuilder()->submitForm($this, $formState);
$this->assertEmpty($formState->getError($form['range_datetime_element']));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.