Loading core/modules/rest/tests/src/Functional/ResourceTestBase.php +5 −58 Changes for core/modules/rest/tests/src/Functional/ResourceTestBase.php: 5 added lines, 58 removed lines. Original line number Diff line number Diff line Loading @@ -4,13 +4,12 @@ namespace Drupal\Tests\rest\Functional; use Behat\Mink\Driver\BrowserKitDriver; use Drupal\Core\Url; use Drupal\rest\RestResourceConfigInterface; use Drupal\Tests\ApiRequestTrait; use Drupal\Tests\BrowserTestBase; use Drupal\user\Entity\Role; use Drupal\user\RoleInterface; use GuzzleHttp\RequestOptions; use Psr\Http\Message\ResponseInterface; /** Loading @@ -26,6 +25,10 @@ */ abstract class ResourceTestBase extends BrowserTestBase { use ApiRequestTrait { makeApiRequest as request; } /** * The format to use in this test. * Loading Loading @@ -325,36 +328,6 @@ protected function grantPermissionsToTestedRole(array $permissions) { } } /** * 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. * * @see \GuzzleHttp\ClientInterface::request() * * @param string $method * HTTP method. * @param \Drupal\Core\Url $url * URL to request. * @param array $request_options * Request options to apply. * * @return \Psr\Http\Message\ResponseInterface */ protected function request($method, Url $url, array $request_options) { $request_options[RequestOptions::HTTP_ERRORS] = FALSE; $request_options[RequestOptions::ALLOW_REDIRECTS] = FALSE; $request_options = $this->decorateWithXdebugCookie($request_options); $client = $this->getHttpClient(); return $client->request($method, $url->setAbsolute(TRUE)->toString(), $request_options); } /** * Asserts that a resource response has the given status code and body. * Loading Loading @@ -459,32 +432,6 @@ protected function assertResourceErrorResponse($expected_status_code, $expected_ $this->assertResourceResponse($expected_status_code, $expected_body, $response, $expected_cache_tags, $expected_cache_contexts, $expected_page_cache_header_value, $expected_dynamic_page_cache_header_value); } /** * Adds the Xdebug cookie to the request options. * * @param array $request_options * The request options. * * @return array * Request options updated with the Xdebug cookie if present. */ protected function decorateWithXdebugCookie(array $request_options) { $session = $this->getSession(); $driver = $session->getDriver(); if ($driver instanceof BrowserKitDriver) { $client = $driver->getClient(); foreach ($client->getCookieJar()->all() as $cookie) { if (isset($request_options[RequestOptions::HEADERS]['Cookie'])) { $request_options[RequestOptions::HEADERS]['Cookie'] .= '; ' . $cookie->getName() . '=' . $cookie->getValue(); } else { $request_options[RequestOptions::HEADERS]['Cookie'] = $cookie->getName() . '=' . $cookie->getValue(); } } } return $request_options; } /** * Recursively sorts an array by key. * Loading Loading
core/modules/rest/tests/src/Functional/ResourceTestBase.php +5 −58 Changes for core/modules/rest/tests/src/Functional/ResourceTestBase.php: 5 added lines, 58 removed lines. Original line number Diff line number Diff line Loading @@ -4,13 +4,12 @@ namespace Drupal\Tests\rest\Functional; use Behat\Mink\Driver\BrowserKitDriver; use Drupal\Core\Url; use Drupal\rest\RestResourceConfigInterface; use Drupal\Tests\ApiRequestTrait; use Drupal\Tests\BrowserTestBase; use Drupal\user\Entity\Role; use Drupal\user\RoleInterface; use GuzzleHttp\RequestOptions; use Psr\Http\Message\ResponseInterface; /** Loading @@ -26,6 +25,10 @@ */ abstract class ResourceTestBase extends BrowserTestBase { use ApiRequestTrait { makeApiRequest as request; } /** * The format to use in this test. * Loading Loading @@ -325,36 +328,6 @@ protected function grantPermissionsToTestedRole(array $permissions) { } } /** * 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. * * @see \GuzzleHttp\ClientInterface::request() * * @param string $method * HTTP method. * @param \Drupal\Core\Url $url * URL to request. * @param array $request_options * Request options to apply. * * @return \Psr\Http\Message\ResponseInterface */ protected function request($method, Url $url, array $request_options) { $request_options[RequestOptions::HTTP_ERRORS] = FALSE; $request_options[RequestOptions::ALLOW_REDIRECTS] = FALSE; $request_options = $this->decorateWithXdebugCookie($request_options); $client = $this->getHttpClient(); return $client->request($method, $url->setAbsolute(TRUE)->toString(), $request_options); } /** * Asserts that a resource response has the given status code and body. * Loading Loading @@ -459,32 +432,6 @@ protected function assertResourceErrorResponse($expected_status_code, $expected_ $this->assertResourceResponse($expected_status_code, $expected_body, $response, $expected_cache_tags, $expected_cache_contexts, $expected_page_cache_header_value, $expected_dynamic_page_cache_header_value); } /** * Adds the Xdebug cookie to the request options. * * @param array $request_options * The request options. * * @return array * Request options updated with the Xdebug cookie if present. */ protected function decorateWithXdebugCookie(array $request_options) { $session = $this->getSession(); $driver = $session->getDriver(); if ($driver instanceof BrowserKitDriver) { $client = $driver->getClient(); foreach ($client->getCookieJar()->all() as $cookie) { if (isset($request_options[RequestOptions::HEADERS]['Cookie'])) { $request_options[RequestOptions::HEADERS]['Cookie'] .= '; ' . $cookie->getName() . '=' . $cookie->getValue(); } else { $request_options[RequestOptions::HEADERS]['Cookie'] = $cookie->getName() . '=' . $cookie->getValue(); } } } return $request_options; } /** * Recursively sorts an array by key. * Loading