function RequirementsPageTrait::assertWarningSummaries

Same name in other branches
  1. 9 core/tests/Drupal/Tests/RequirementsPageTrait.php \Drupal\Tests\RequirementsPageTrait::assertWarningSummaries()
  2. 10 core/tests/Drupal/Tests/RequirementsPageTrait.php \Drupal\Tests\RequirementsPageTrait::assertWarningSummaries()
  3. 11.x core/tests/Drupal/Tests/RequirementsPageTrait.php \Drupal\Tests\RequirementsPageTrait::assertWarningSummaries()

Assert the given warning summaries are present on the page.

If an expected warning is not found, or if a warning not in the list is present, a fail is raised.

Parameters

string[] $warning_summaries: A list of warning summaries to expect on the requirements screen (e.g. 'PHP', 'PHP OPcode caching', etc.).

2 calls to RequirementsPageTrait::assertWarningSummaries()
RequirementsPageTrait::continueOnExpectedWarnings in core/tests/Drupal/Tests/RequirementsPageTrait.php
Continues installation when the expected warnings are found.
RequirementsPageTrait::updateRequirementsProblem in core/tests/Drupal/Tests/RequirementsPageTrait.php
Handles the update requirements page.

File

core/tests/Drupal/Tests/RequirementsPageTrait.php, line 55

Class

RequirementsPageTrait
Provides helper methods for the requirements page.

Namespace

Drupal\Tests

Code

protected function assertWarningSummaries(array $warning_summaries) {
    // Allow only details elements that are directly after the warning header
    // or each other. There is no guaranteed wrapper we can rely on across
    // distributions. When there are multiple warnings, the selectors will be:
    // - h3#warning+details summary
    // - h3#warning+details+details summary
    // - etc.
    // We add one more selector than expected warnings to confirm that there
    // isn't any other warning before clicking the link.
    // @todo Make this more reliable in
    //   https://www.drupal.org/project/drupal/issues/2927345.
    $selectors = [];
    for ($i = 0; $i <= count($warning_summaries); $i++) {
        $selectors[] = 'h3#warning' . implode('', array_fill(0, $i + 1, '+details')) . ' summary';
    }
    $warning_elements = $this->cssSelect(implode(', ', $selectors));
    // Confirm that there are only the expected warnings.
    $warnings = [];
    foreach ($warning_elements as $warning) {
        $warnings[] = trim($warning->getText());
    }
    $this->assertEquals($warning_summaries, $warnings);
}

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