You are here

protected function UiHelperTrait::drupalGet in Drupal 10

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/UiHelperTrait.php \Drupal\Tests\UiHelperTrait::drupalGet()
  2. 9 core/tests/Drupal/Tests/UiHelperTrait.php \Drupal\Tests\UiHelperTrait::drupalGet()

Retrieves a Drupal path or an absolute path.

Parameters

string|\Drupal\Core\Url $path: Drupal path or URL to load into Mink controlled browser.

array $options: (optional) Options to be forwarded to the url generator.

string[] $headers: An array containing additional HTTP request headers, the array keys are the header names and the array values the header values. This is useful to set for example the "Accept-Language" header for requesting the page in a different language. Note that not all headers are supported, for example the "Accept" header is always overridden by the browser. For testing REST APIs it is recommended to obtain a separate HTTP client using getHttpClient() and performing requests that way.

Return value

string The retrieved HTML string, also available as $this->getRawContent()

See also

\Drupal\Tests\BrowserTestBase::getHttpClient()

637 calls to UiHelperTrait::drupalGet()
AccessDeniedTest::testAccessDenied in core/modules/system/tests/src/Functional/System/AccessDeniedTest.php
AccessDeniedTest::testAccessDeniedCustomPageWithAccessDenied in core/modules/system/tests/src/Functional/System/AccessDeniedTest.php
Tests that an inaccessible custom 403 page falls back to the default.
AccessRoleTest::testAccessRole in core/modules/user/tests/src/Functional/Views/AccessRoleTest.php
Tests role access plugin.
AdminMetaTagTest::testMetaTag in core/modules/system/tests/src/Functional/System/AdminMetaTagTest.php
Verify that the meta tag HTML is generated correctly.
AdminTest::testAdminPages in core/modules/system/tests/src/Functional/System/AdminTest.php
Tests output on administrative listing pages.

... See full list

File

core/tests/Drupal/Tests/UiHelperTrait.php, line 226

Class

UiHelperTrait
Provides UI helper methods.

Namespace

Drupal\Tests

Code

protected function drupalGet($path, array $options = [], array $headers = []) {
  $options['absolute'] = TRUE;
  $url = $this
    ->buildUrl($path, $options);
  $session = $this
    ->getSession();
  $this
    ->prepareRequest();
  foreach ($headers as $header_name => $header_value) {
    $session
      ->setRequestHeader($header_name, $header_value);
  }
  $session
    ->visit($url);
  $out = $session
    ->getPage()
    ->getContent();

  // Ensure that any changes to variables in the other thread are picked up.
  $this
    ->refreshVariables();

  // Replace original page output with new output from redirected page(s).
  if ($new = $this
    ->checkForMetaRefresh()) {
    $out = $new;

    // We are finished with all meta refresh redirects, so reset the counter.
    $this->metaRefreshCount = 0;
  }

  // Log only for WebDriverTestBase tests because for BrowserKitDriver we log
  // with ::getResponseLogHandler.
  if ($this->htmlOutputEnabled && !$this
    ->isTestUsingGuzzleClient()) {
    $html_output = 'GET request to: ' . $url . '<hr />Ending URL: ' . $this
      ->getSession()
      ->getCurrentUrl();
    $html_output .= '<hr />' . $out;
    $html_output .= $this
      ->getHtmlOutputHeaders();
    $this
      ->htmlOutput($html_output);
  }
  return $out;
}