function AjaxTest::testUiAjaxException

Same name in this branch
  1. 11.x core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxTest.php \Drupal\FunctionalJavascriptTests\Ajax\AjaxTest::testUiAjaxException()
Same name and namespace in other branches
  1. 10 core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxTest.php \Drupal\FunctionalJavascriptTests\Ajax\AjaxTest::testUiAjaxException()
  2. main core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxTest.php \Drupal\FunctionalJavascriptTests\Ajax\AjaxTest::testUiAjaxException()
  3. main core/themes/olivero/tests/src/FunctionalJavascript/AjaxTest.php \Drupal\Tests\olivero\FunctionalJavascript\AjaxTest::testUiAjaxException()

Tests that Ajax errors are visible in the UI.

File

core/themes/olivero/tests/src/FunctionalJavascript/AjaxTest.php, line 31

Class

AjaxTest
Tests AJAX responses.

Namespace

Drupal\Tests\olivero\FunctionalJavascript

Code

public function testUiAjaxException() : void {
  $this->drupalGet('ajax-test/exception-link');
  $page = $this->getSession()
    ->getPage();
  // We don't want the test to error out because of an expected Javascript
  // console error.
  $this->failOnJavascriptConsoleErrors = FALSE;
  // Click on the AJAX link.
  $this->clickLink('Ajax Exception');
  $this->assertSession()
    ->statusMessageContainsAfterWait("Oops, something went wrong. Check your browser's developer console for more details.", 'error');
  // Check that the message can be closed.
  $this->click('.messages__close');
  $this->assertTrue($page->find('css', '.messages--error')
    ->hasClass('hidden'));
  // This is needed to avoid an unfinished AJAX request error from tearDown()
  // because this test intentionally does not complete all AJAX requests.
  $this->getSession()
    ->executeScript("delete window.drupalActiveXhrCount");
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.