diff --git a/core/modules/outside_in/tests/src/FunctionalJavascript/OutsideInBlockFormTest.php b/core/modules/outside_in/tests/src/FunctionalJavascript/OutsideInBlockFormTest.php index 04c6e70..1b0c84c 100644 --- a/core/modules/outside_in/tests/src/FunctionalJavascript/OutsideInBlockFormTest.php +++ b/core/modules/outside_in/tests/src/FunctionalJavascript/OutsideInBlockFormTest.php @@ -71,7 +71,7 @@ public function testBlocks($block_id, $new_page_text, $element_selector, $label_ $this->waitForNoElement("#toolbar-administration a.is-active"); } $page->find('css', $toolbar_item)->click(); - $web_assert->waitForElementVisible('css', "{$toolbar_item}.is-active"); + $this->waitForElementVisibleAndAjaxRequest("{$toolbar_item}.is-active"); } $this->toggleEditingMode(); if (isset($toolbar_item)) { @@ -166,7 +166,7 @@ public function providerTestBlocks() { * Enables Editing mode by pressing "Edit" button in the toolbar. */ protected function toggleEditingMode() { - $this->assertSession()->waitForElementVisible('css', 'div[data-contextual-id="block:block=powered:langcode=en|outside_in::langcode=en"] .contextual-links a', 10000); + $this->waitForElementVisibleAndAjaxRequest('div[data-contextual-id="block:block=powered:langcode=en|outside_in::langcode=en"] .contextual-links a'); // Waiting for QuickEdit icon animation. $this->assertSession()->assertWaitOnAjaxRequest(); @@ -235,7 +235,7 @@ public function testQuickEditLinks() { $this->drupalGet('node/' . $node->id()); // Waiting for Toolbar module. // @todo Remove the hack after https://www.drupal.org/node/2542050. - $web_assert->waitForElementVisible('css', '.toolbar-fixed'); + $this->waitForElementVisibleAndAjaxRequest('.toolbar-fixed'); // Waiting for Toolbar animation. $web_assert->assertWaitOnAjaxRequest(); // The 2nd page load we should already be in edit mode. @@ -244,7 +244,7 @@ public function testQuickEditLinks() { } // In Edit mode clicking field should open QuickEdit toolbar. $page->find('css', $body_selector)->click(); - $web_assert->waitForElementVisible('css', $quick_edit_selector); + $this->waitForElementVisibleAndAjaxRequest($quick_edit_selector); // Exit Edit mode. $this->toggleEditingMode(); // Exiting Edit mode should close QuickEdit toolbar. @@ -257,7 +257,7 @@ public function testQuickEditLinks() { $this->toggleEditingMode(); $this->openBlockForm($block_selector); $page->find('css', $body_selector)->click(); - $web_assert->waitForElementVisible('css', $quick_edit_selector); + $this->waitForElementVisibleAndAjaxRequest($quick_edit_selector); // Offcanvas should be closed when opening QuickEdit toolbar. $this->waitForOffCanvasToClose(); @@ -272,7 +272,7 @@ public function testQuickEditLinks() { $this->toggleEditingMode(); // Open QuickEdit toolbar before going into Edit mode. $this->clickContextualLink('.node', "Quick edit"); - $web_assert->waitForElementVisible('css', $quick_edit_selector); + $this->waitForElementVisibleAndAjaxRequest($quick_edit_selector); // Open off-canvas and enter Edit mode via contextual link. $this->clickContextualLink($block_selector, "Quick edit"); $this->waitForOffCanvasToOpen(); @@ -281,7 +281,7 @@ public function testQuickEditLinks() { // Open QuickEdit toolbar via contextual link while in Edit mode. $this->clickContextualLink('.node', "Quick edit", FALSE); $this->waitForOffCanvasToClose(); - $web_assert->waitForElementVisible('css', $quick_edit_selector); + $this->waitForElementVisibleAndAjaxRequest($quick_edit_selector); } } diff --git a/core/modules/outside_in/tests/src/FunctionalJavascript/OutsideInJavascriptTestBase.php b/core/modules/outside_in/tests/src/FunctionalJavascript/OutsideInJavascriptTestBase.php index 8cdeec0..42dc9f0 100644 --- a/core/modules/outside_in/tests/src/FunctionalJavascript/OutsideInJavascriptTestBase.php +++ b/core/modules/outside_in/tests/src/FunctionalJavascript/OutsideInJavascriptTestBase.php @@ -40,9 +40,7 @@ public function enableTheme($theme) { * Waits for Off-canvas tray to open. */ protected function waitForOffCanvasToOpen() { - $web_assert = $this->assertSession(); - $web_assert->assertWaitOnAjaxRequest(); - $web_assert->waitForElementVisible('css', '#drupal-offcanvas'); + $this->waitForElementVisibleAndAjaxRequest('#drupal-offcanvas'); } /** @@ -118,4 +116,15 @@ protected function toggleContextualTriggerVisibility($selector) { $this->getSession()->executeScript("jQuery('{$selector} .contextual .trigger').toggleClass('visually-hidden');"); } + /** + * Wait for an element to be visible and Ajax request to finish. + * + * @param string $css_selector + * The CSS selector. + */ + protected function waitForElementVisibleAndAjaxRequest($css_selector) { + $this->assertSession()->waitForElementVisible('css', $css_selector); + $this->assertSession()->assertWaitOnAjaxRequest(); + } + }