function ToolbarIntegrationTest::waitAndAssertAriaPressedState

Asserts that an element's `aria-pressed` attribute matches expected state.

Uses `waitFor()` to pause until either the condition is met or the timeout of `1` second has passed.

Parameters

\Behat\Mink\Element\NodeElement $element: The element to be tested.

bool $expected: The expected value of `aria-pressed`, as a boolean.

Throws

ExpectationFailedException

1 call to ToolbarIntegrationTest::waitAndAssertAriaPressedState()
ToolbarIntegrationTest::testToolbarToggling in core/modules/toolbar/tests/src/FunctionalJavascript/ToolbarIntegrationTest.php
Tests if the toolbar can be toggled with JavaScript.

File

core/modules/toolbar/tests/src/FunctionalJavascript/ToolbarIntegrationTest.php, line 114

Class

ToolbarIntegrationTest
Tests the JavaScript functionality of the toolbar.

Namespace

Drupal\Tests\toolbar\FunctionalJavascript

Code

private function waitAndAssertAriaPressedState(NodeElement $element, bool $expected) : void {
  $this->assertTrue($this->getSession()
    ->getPage()
    ->waitFor(1, function () use ($element, $expected) : bool {
    // Get boolean representation of `aria-pressed`.
    // TRUE if `aria-pressed="true"`, FALSE otherwise.
    $actual = $element->getAttribute('aria-pressed') == 'true';
    // Exit `waitFor()` when $actual == $expected.
    return $actual == $expected;
  }));
}

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