You are here

protected function ResourceTestBase::request in JSON:API 8

Performs a HTTP request. Wraps the Guzzle HTTP client.

Why wrap the Guzzle HTTP client? Because we want to keep the actual test code as simple as possible, and hence not require them to specify the 'http_errors = FALSE' request option, nor do we want them to have to convert Drupal Url objects to strings.

We also don't want to follow redirects automatically, to ensure these tests are able to detect when redirects are added or removed.

Parameters

string $method: HTTP method.

\Drupal\Core\Url $url: URL to request.

array $request_options: Request options to apply.

Return value

\Psr\Http\Message\ResponseInterface The response.

See also

\GuzzleHttp\ClientInterface::request()

26 calls to ResourceTestBase::request()
CommentTest::testCollectionFilterAccess in tests/src/Functional/CommentTest.php
CommentTest::testPostIndividualDxWithoutCriticalBaseFields in tests/src/Functional/CommentTest.php
Tests POSTing a comment without critical base fields.
CommentTest::testPostIndividualSkipCommentApproval in tests/src/Functional/CommentTest.php
Tests POSTing a comment with and without 'skip comment approval'.
ConfigurableLanguageTest::testGetIndividualDefaultConfig in tests/src/Functional/ConfigurableLanguageTest.php
Test a GET request for a default config entity, which has a _core key.
FileTest::testCollectionFilterAccess in tests/src/Functional/FileTest.php

... See full list

File

tests/src/Functional/ResourceTestBase.php, line 611

Class

ResourceTestBase
Subclass this for every JSON API resource type.

Namespace

Drupal\Tests\jsonapi\Functional

Code

protected function request($method, Url $url, array $request_options) {
  $this
    ->refreshVariables();
  $request_options[RequestOptions::HTTP_ERRORS] = FALSE;
  $request_options[RequestOptions::ALLOW_REDIRECTS] = FALSE;
  $request_options = $this
    ->decorateWithXdebugCookie($request_options);
  $client = $this
    ->getSession()
    ->getDriver()
    ->getClient()
    ->getClient();
  return $client
    ->request($method, $url
    ->setAbsolute(TRUE)
    ->toString(), $request_options);
}