Upstream spiral/testing state of the touched files before e812c3d094
This commit is contained in:
1 parent
4bb906a5d6
commit
fdcc6b7728
3 files changed
+3
-108
No files matched your search
@@ -1,55 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Spiral\Testing\Tests\Http;
|
||||
|
||||
use Spiral\Auth\Middleware\AuthMiddleware;
|
||||
use Spiral\Bootloader\Auth\HttpAuthBootloader;
|
||||
use Spiral\Testing\Tests\Http\Stub\ActorReportingMiddleware;
|
||||
use Spiral\Testing\Tests\Http\Stub\HeaderAuthMiddleware;
|
||||
use Spiral\Testing\Tests\TestCase;
|
||||
|
||||
final class FakeHttpAuthTransportTest extends TestCase
|
||||
{
|
||||
public function defineBootloaders(): array
|
||||
{
|
||||
return [...parent::defineBootloaders(), HttpAuthBootloader::class];
|
||||
}
|
||||
|
||||
public function testActorIsAuthenticatedThroughNamedTransport(): void
|
||||
{
|
||||
$actor = new \stdClass();
|
||||
|
||||
$response = $this->fakeHttp()
|
||||
->withActor($actor)
|
||||
->withMiddleware(ActorReportingMiddleware::class, HeaderAuthMiddleware::class)
|
||||
->get('/get/query-params');
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertBodySame($actor::class);
|
||||
}
|
||||
|
||||
public function testActorIsAuthenticatedThroughEveryTransport(): void
|
||||
{
|
||||
$actor = new \stdClass();
|
||||
|
||||
$response = $this->fakeHttp()
|
||||
->withActor($actor)
|
||||
->withMiddleware(ActorReportingMiddleware::class, AuthMiddleware::class)
|
||||
->get('/get/query-params');
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertBodySame($actor::class);
|
||||
}
|
||||
|
||||
public function testRequestWithoutActorStaysUnauthenticated(): void
|
||||
{
|
||||
$response = $this->fakeHttp()
|
||||
->withMiddleware(ActorReportingMiddleware::class, HeaderAuthMiddleware::class)
|
||||
->get('/get/query-params');
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertBodySame(ActorReportingMiddleware::NO_ACTOR);
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Spiral\Testing\Tests\Http\Stub;
|
||||
|
||||
use Nyholm\Psr7\Response;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use Spiral\Auth\AuthContextInterface;
|
||||
use Spiral\Auth\Middleware\AuthMiddleware;
|
||||
|
||||
final class ActorReportingMiddleware implements MiddlewareInterface
|
||||
{
|
||||
public const NO_ACTOR = 'guest';
|
||||
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
{
|
||||
$context = $request->getAttribute(AuthMiddleware::ATTRIBUTE);
|
||||
$actor = $context instanceof AuthContextInterface ? $context->getActor() : null;
|
||||
|
||||
return new Response(200, body: $actor === null ? self::NO_ACTOR : $actor::class);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user