public function DateRecurBasicWidgetTest::testRequiredField in Recurring Dates Field 3.1.x
Same name and namespace in other branches
- 8.2 tests/src/Functional/DateRecurBasicWidgetTest.php \Drupal\Tests\date_recur\Functional\DateRecurBasicWidgetTest::testRequiredField()
- 3.x tests/src/Functional/DateRecurBasicWidgetTest.php \Drupal\Tests\date_recur\Functional\DateRecurBasicWidgetTest::testRequiredField()
- 3.0.x tests/src/Functional/DateRecurBasicWidgetTest.php \Drupal\Tests\date_recur\Functional\DateRecurBasicWidgetTest::testRequiredField()
Tests if field is set to required, only start date is required.
End date must never be required, value is copied over from start date.
File
- tests/
src/ Functional/ DateRecurBasicWidgetTest.php, line 248
Class
- DateRecurBasicWidgetTest
- Tests date recur basic widget.
Namespace
Drupal\Tests\date_recur\FunctionalCode
public function testRequiredField() {
$field_storage = FieldStorageConfig::create([
'entity_type' => 'entity_test',
'field_name' => 'foo',
'type' => 'date_recur',
'settings' => [
'datetime_type' => DateRecurItem::DATETIME_TYPE_DATETIME,
],
]);
$field_storage
->save();
$field = [
'field_name' => 'foo',
'entity_type' => 'entity_test',
'bundle' => 'entity_test',
// Set instance to required.
'required' => TRUE,
];
FieldConfig::create($field)
->save();
$display = \Drupal::service('entity_display.repository')
->getFormDisplay('entity_test', 'entity_test', 'default');
$component = $display
->getComponent('foo');
$component['region'] = 'content';
$component['type'] = 'date_recur_basic_widget';
$component['settings'] = [];
$display
->setComponent('foo', $component);
$display
->save();
$edit = [
'foo[0][value][date]' => '',
'foo[0][value][time]' => '',
'foo[0][end_value][date]' => '',
'foo[0][end_value][time]' => '',
'foo[0][timezone]' => 'America/Chicago',
'foo[0][rrule]' => 'FREQ=DAILY',
];
$this
->drupalGet(Url::fromRoute('entity.entity_test.add_form'));
$this
->submitForm($edit, 'Save');
$this
->assertSession()
->pageTextContains('The Start date is required.');
$this
->assertSession()
->pageTextNotContains('The End date is required.');
}