annotate core/modules/rest/tests/src/Functional/BasicAuthResourceTestTrait.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 7a779792577d
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\rest\Functional;
Chris@0 4
Chris@0 5 use Drupal\Core\Url;
Chris@0 6 use Psr\Http\Message\ResponseInterface;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Trait for ResourceTestBase subclasses testing $auth=basic_auth.
Chris@0 10 *
Chris@0 11 * Characteristics:
Chris@0 12 * - Every request must send an Authorization header.
Chris@0 13 * - When accessing a URI that requires authentication without being
Chris@0 14 * authenticated, a 401 response must be sent.
Chris@0 15 * - Because every request must send an authorization, there is no danger of
Chris@0 16 * CSRF attacks.
Chris@0 17 */
Chris@0 18 trait BasicAuthResourceTestTrait {
Chris@0 19
Chris@0 20 /**
Chris@0 21 * {@inheritdoc}
Chris@0 22 */
Chris@0 23 protected function getAuthenticationRequestOptions($method) {
Chris@0 24 return [
Chris@0 25 'headers' => [
Chris@0 26 'Authorization' => 'Basic ' . base64_encode($this->account->name->value . ':' . $this->account->passRaw),
Chris@0 27 ],
Chris@0 28 ];
Chris@0 29 }
Chris@0 30
Chris@0 31 /**
Chris@0 32 * {@inheritdoc}
Chris@0 33 */
Chris@0 34 protected function assertResponseWhenMissingAuthentication(ResponseInterface $response) {
Chris@0 35 $this->assertResourceErrorResponse(401, 'No authentication credentials provided.', $response);
Chris@0 36 }
Chris@0 37
Chris@0 38 /**
Chris@0 39 * {@inheritdoc}
Chris@0 40 */
Chris@0 41 protected function assertAuthenticationEdgeCases($method, Url $url, array $request_options) {}
Chris@0 42
Chris@0 43 }