function OptionsFieldUITest::testDefaultValueOptions
Same name and namespace in other branches
- 10 core/modules/options/tests/src/FunctionalJavascript/OptionsFieldUITest.php \Drupal\Tests\options\FunctionalJavascript\OptionsFieldUITest::testDefaultValueOptions()
Tests that the allowed options are available to the default value widget.
File
-
core/
modules/ options/ tests/ src/ FunctionalJavascript/ OptionsFieldUITest.php, line 88
Class
- OptionsFieldUITest
- Tests the Options field UI functionality.
Namespace
Drupal\Tests\options\FunctionalJavascriptCode
public function testDefaultValueOptions() : void {
$page = $this->getSession()
->getPage();
$assert_session = $this->assertSession();
$bundle_path = 'admin/structure/types/manage/' . $this->type;
// Create a field of type list:string.
$this->fieldUIAddNewFieldJS($bundle_path, 'test_string_list', 'Test string list', 'list_string', FALSE);
$page->findField('field_storage[subform][settings][allowed_values][table][0][item][label]')
->setValue('first');
$assert_session->assertWaitOnAjaxRequest();
$page->findField('set_default_value')
->setValue(TRUE);
// Assert that the option added in the subform is available to the default
// value field.
$this->assertSession()
->waitForElement('css', '[name="default_value_input[field_test_int_list]"] option:contains("first")');
$page->pressButton('Add another item');
$assert_session->waitForField('field_storage[subform][settings][allowed_values][table][1][item][label]');
$field_input = $page->find('css', '[name="field_storage[subform][settings][allowed_values][table][1][item][label]"]');
$field_input->setValue('second');
$this->assertNotNull($assert_session->waitForElement('css', '[name="default_value_input[field_test_string_list]"] option:contains("second")'));
$assert_session->optionExists('default_value_input[field_test_string_list]', 'second');
$page->selectFieldOption('default_value_input[field_test_string_list]', 'second');
$page->find('css', '.ui-dialog-buttonset button:contains("Save")')
->press();
$this->assertTrue($assert_session->waitForText('Saved Test string list configuration.'));
// Create a field of type list:integer.
$this->fieldUIAddNewFieldJS($bundle_path, 'test_int_list', 'Test int list', 'list_integer', FALSE);
$page->findField('field_storage[subform][settings][allowed_values][table][0][item][label]')
->setValue('first');
$assert_session->assertWaitOnAjaxRequest();
$page->findField('set_default_value')
->setValue(TRUE);
$page->selectFieldOption('default_value_input[field_test_int_list]', 'first');
// Assert that no validation is performed.
$assert_session->statusMessageNotContains('Value field is required.');
$field_input = $page->find('css', '[name="field_storage[subform][settings][allowed_values][table][0][item][key]"]');
$field_input->setValue(1);
$this->assertSession()
->assertWaitOnAjaxRequest();
$page->checkField('set_default_value');
$this->assertSession()
->waitForElement('css', '[name="default_value_input[field_test_int_list]"] option:contains("first")');
// Assert that the option added in the subform is available to the default
// value field.
$this->assertSession()
->optionExists('default_value_input[field_test_int_list]', 'first');
$page->selectFieldOption('default_value_input[field_test_int_list]', 'first');
$page->find('css', '.ui-dialog-buttonset button:contains("Save")')
->press();
$this->assertTrue($this->assertSession()
->waitForText('Saved Test int list configuration.'));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.