You are here

protected function WebTestBase::checkForMetaRefresh in Drupal 8

Checks for meta refresh tag and if found call drupalGet() recursively.

This function looks for the http-equiv attribute to be set to "Refresh" and is case-sensitive.

Return value

Either the new page content or FALSE.

2 calls to WebTestBase::checkForMetaRefresh()
WebTestBase::drupalGet in core/modules/simpletest/src/WebTestBase.php
Retrieves a Drupal path or an absolute path.
WebTestBase::drupalPostForm in core/modules/simpletest/src/WebTestBase.php
Executes a form submission.

File

core/modules/simpletest/src/WebTestBase.php, line 1472

Class

WebTestBase
Test case for typical Drupal tests.

Namespace

Drupal\simpletest

Code

protected function checkForMetaRefresh() {
  if (strpos($this
    ->getRawContent(), '<meta ') && $this
    ->parse() && (!isset($this->maximumMetaRefreshCount) || $this->metaRefreshCount < $this->maximumMetaRefreshCount)) {
    $refresh = $this
      ->xpath('//meta[@http-equiv="Refresh"]');
    if (!empty($refresh)) {

      // Parse the content attribute of the meta tag for the format:
      // "[delay]: URL=[page_to_redirect_to]".
      if (preg_match('/\\d+;\\s*URL=(?<url>.*)/i', $refresh[0]['content'], $match)) {
        $this->metaRefreshCount++;
        return $this
          ->drupalGet($this
          ->getAbsoluteUrl(Html::decodeEntities($match['url'])));
      }
    }
  }
  return FALSE;
}