You are here

public function JSWebAssert::statusMessageContainsAfterWait in Drupal 10

Asserts that a status message containing given string exists after wait.

Parameters

string $message: The partial message to assert.

string|null $type: The optional message type: status, error, or warning.

int $timeout: Optional timeout in milliseconds, defaults to 10000.

File

core/tests/Drupal/FunctionalJavascriptTests/JSWebAssert.php, line 581

Class

JSWebAssert
Defines a class with methods for asserting presence of elements during tests.

Namespace

Drupal\FunctionalJavascriptTests

Code

public function statusMessageContainsAfterWait(string $message, string $type = NULL, int $timeout = 10000) : void {
  $selector = $this
    ->buildJavascriptStatusMessageSelector($message, $type);
  $status_message_element = $this
    ->waitForElement('xpath', $selector, $timeout);
  if ($type) {
    $failure_message = sprintf('A status message of type "%s" containing "%s" does not appear on this page, but it should.', $type, $message);
  }
  else {
    $failure_message = sprintf('A status message containing "%s" does not appear on this page, but it should.', $type);
  }

  // There is no Assert::isNotNull() method, so we make our own constraint.
  $constraint = new LogicalNot(new IsNull());
  Assert::assertThat($status_message_element, $constraint, $failure_message);
}