diff --git a/core/modules/field_ui/tests/src/FunctionalJavascript/FieldUiIntegrationTest.php b/core/modules/field_ui/tests/src/FunctionalJavascript/FieldUiIntegrationTest.php new file mode 100644 index 0000000000..40fccfa020 --- /dev/null +++ b/core/modules/field_ui/tests/src/FunctionalJavascript/FieldUiIntegrationTest.php @@ -0,0 +1,81 @@ +drupalCreateUser([ + 'administer user display', + ]); + $this->drupalLogin($admin_user); + + FieldStorageConfig::create([ + 'entity_type' => 'user', + 'field_name' => 'field_text_test', + 'type' => 'string', + 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, + ])->save(); + FieldConfig::create([ + 'entity_type' => 'user', + 'field_name' => 'field_text_test', + 'bundle' => 'user', + ])->save(); + entity_get_display('user', 'user', 'default') + ->setComponent('field_text_test', ['region' => 'content', 'type' => 'string']) + ->save(); + } + + /** + * Tests if the field formatter settings edit button can be operated with the + * keyboard ENTER key. + */ + public function testFieldUiFormatterSettingsButtonKeyboardEnter() { + // Get a Field UI manage-display page. + $this->drupalGet('admin/config/people/accounts/display'); + $assertSession = $this->assertSession(); + $session = $this->getSession(); + $page = $session->getPage(); + + $assertSession->waitForElementVisible('css', 'input[data-drupal-selector=edit-fields-field-text-test-settings-edit]'); + + + $enter_key_event = <<executeScript($enter_key_event); + + // We expect a checkbox for the string formatter's link-to-entity setting. + $checkbox = $assertSession->waitForElementVisible('css', 'input[data-drupal-selector=edit-fields-field-text-test-settings-edit-form-settings-link-to-entity]'); + $this->assertTrue($checkbox, 'After pressing formatter settings button, formatter settings fields are present.'); + + // We expect the edit button has gone. + $button = $page->find('css', 'input[data-drupal-selector=edit-fields-field-text-test-settings-edit]'); + $this->assertTrue(empty($button), 'After pressing field formatter settings button, it should no longer be present.'); + } +}