function ApiRequestTrait::makeApiRequest
Same name in other branches
- 10 core/tests/Drupal/Tests/ApiRequestTrait.php \Drupal\Tests\ApiRequestTrait::makeApiRequest()
Performs an 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()
27 calls to ApiRequestTrait::makeApiRequest()
- CommentResourceTestBase::testPostDxWithoutCriticalBaseFields in core/
modules/ comment/ tests/ src/ Functional/ Rest/ CommentResourceTestBase.php - Tests POSTing a comment without critical base fields.
- CommentResourceTestBase::testPostSkipCommentApproval in core/
modules/ comment/ tests/ src/ Functional/ Rest/ CommentResourceTestBase.php - Tests POSTing a comment with and without 'skip comment approval'.
- ConfigurableLanguageResourceTestBase::testGetDefaultConfig in core/
modules/ language/ tests/ src/ Functional/ Rest/ ConfigurableLanguageResourceTestBase.php - Tests a GET request for a default config entity, which has a _core key.
- DbLogResourceTest::testWatchdog in core/
modules/ dblog/ tests/ src/ Functional/ DbLogResourceTest.php - Writes a log messages and retrieves it via the REST API.
- EntityResourceTestBase::assertNormalizationEdgeCases in core/
modules/ rest/ tests/ src/ Functional/ EntityResource/ EntityResourceTestBase.php - Asserts normalization-specific edge cases.
1 method overrides ApiRequestTrait::makeApiRequest()
- LayoutRestTestBase::request in core/
modules/ layout_builder/ tests/ src/ Functional/ Rest/ LayoutRestTestBase.php - Performs an HTTP request. Wraps the Guzzle HTTP client.
File
-
core/
tests/ Drupal/ Tests/ ApiRequestTrait.php, line 41
Class
- ApiRequestTrait
- Boilerplate for API Functional tests' HTTP requests.
Namespace
Drupal\TestsCode
protected function makeApiRequest($method, Url $url, array $request_options) {
// HEAD requests do not have bodies. If one is specified, Guzzle will not
// ignore it and the request will be treated as GET with an overridden
// method string, and libcurl will expect to read a response body.
if ($method === 'HEAD' && array_key_exists('body', $request_options)) {
unset($request_options['body']);
}
$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);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.