diff -u b/core/misc/ajax.js b/core/misc/ajax.js --- b/core/misc/ajax.js +++ b/core/misc/ajax.js @@ -291,7 +291,7 @@ if (event.which === 13 || event.which === 32 && element.type !== 'text' && element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number') { event.preventDefault(); event.stopPropagation(); - $(ajax.element_settings.element).trigger(ajax.element_settings.event); + $(element).trigger(ajax.element_settings.event); } }; @@ -635,7 +635,7 @@ element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number')) { event.preventDefault(); event.stopPropagation(); - $(element).trigger(ajax.element_settings.event); + $(ajax.element_settings.element).trigger(ajax.element_settings.event); } }; diff -u b/core/modules/field_ui/tests/src/FunctionalJavascript/FieldUiIntegrationTest.php b/core/modules/field_ui/tests/src/FunctionalJavascript/FieldUiIntegrationTest.php --- b/core/modules/field_ui/tests/src/FunctionalJavascript/FieldUiIntegrationTest.php +++ b/core/modules/field_ui/tests/src/FunctionalJavascript/FieldUiIntegrationTest.php @@ -30,17 +30,20 @@ ]); $this->drupalLogin($admin_user); - FieldStorageConfig::create(array( + FieldStorageConfig::create([ 'entity_type' => 'user', 'field_name' => 'field_text_test', 'type' => 'string', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, - ))->save(); - FieldConfig::create(array( + ])->save(); + FieldConfig::create([ 'entity_type' => 'user', 'field_name' => 'field_text_test', 'bundle' => 'user', - ))->save(); + ])->save(); + entity_get_display('user', 'user', 'default') + ->setComponent('field_text_test', ['region' => 'content', 'type' => 'string']) + ->save(); } /** @@ -50,32 +53,21 @@ public function testFieldUiFormatterSettingsButtonKeyboardEnter() { - // Get a Field UI manage-display page. $this->drupalGet('admin/config/people/accounts/display'); $session = $this->assertSession(); $session->statusCodeEquals(200); $page = $this->getSession()->getPage(); - // Select a field formatter which has settings, so that the settings button - // will appear. - // @todo Specify the formatter in setUp() so we can remove this step. - $select = $page->findById('edit-fields-field-text-test-type'); - $select->selectOption('string'); - $session->assertWaitOnAjaxRequest(); - - // We can't know the exact ID of the edit button; it has a random - // suffix after the ajax request. - $button = $page->find('css', 'input[type=image][id^=edit-fields-field-text-test-settings-edit]'); + $button = $session->waitForElementVisible('css', 'input[data-drupal-selector=edit-fields-field-text-test-settings-edit]'); $button->focus(); $button->keyPress(13); // ENTER key $session->assertWaitOnAjaxRequest(); // We expect the edit button has gone. - $button = $page->find('css', 'input[type=image][id^=edit-fields-field-text-test-settings-edit]'); + $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.'); // We expect a checkbox for the string formatter's link-to-entity setting. - $checkbox = $page->find('css', 'input[id^=edit-fields-field-text-test-settings-edit-form-settings-link-to-entity]'); + $checkbox = $page->find('css', 'input[data-drupal-selector=edit-fields-field-text-test-settings-edit-form-settings-link-to-entity]'); $this->assertTrue($checkbox->isVisible(), 'After pressing formatter settings button, formatter settings fields are present.'); } - } only in patch2: unchanged: --- a/core/misc/ajax.es6.js +++ b/core/misc/ajax.es6.js @@ -635,7 +635,7 @@ element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number')) { event.preventDefault(); event.stopPropagation(); - $(ajax.element_settings.element).trigger(ajax.element_settings.event); + $(element).trigger(ajax.element_settings.event); } };