function UiHelperTrait::drupalGet

Same name in other branches
  1. 9 core/tests/Drupal/Tests/UiHelperTrait.php \Drupal\Tests\UiHelperTrait::drupalGet()
  2. 8.9.x core/tests/Drupal/Tests/UiHelperTrait.php \Drupal\Tests\UiHelperTrait::drupalGet()
  3. 11.x 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()

2548 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.
AccessTest::testStaticAccessPlugin in core/modules/views/tests/src/Functional/Plugin/AccessTest.php
Tests static access check.
ActionFormAjaxTest::testActionConfigurationWithAjax in core/modules/action/tests/src/FunctionalJavascript/ActionFormAjaxTest.php
Tests action plugins with AJAX save their configuration.

... See full list

3 methods override UiHelperTrait::drupalGet()
MenuAccessTest::drupalGet in core/modules/system/tests/src/Functional/Menu/MenuAccessTest.php
Retrieves a Drupal path or an absolute path.
OffCanvasTestBase::drupalGet in core/modules/system/tests/src/FunctionalJavascript/OffCanvasTestBase.php
Retrieves a Drupal path or an absolute path.
UITestBase::drupalGet in core/modules/views_ui/tests/src/Functional/UITestBase.php
Retrieves a Drupal path or an absolute path.

File

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

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) {
        if (is_int($header_name)) {
            // @todo Trigger deprecation in
            //   https://www.drupal.org/project/drupal/issues/3421105.
            [
                $header_name,
                $header_value,
            ] = explode(':', $header_value);
        }
        if (is_null($header_value)) {
            // @todo Trigger deprecation in
            //   https://www.drupal.org/project/drupal/issues/3421105.
            $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;
}

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