Extract ResponseRenderer dependency from LogoutController
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
This commit is contained in:
parent
396d5f7b99
commit
43f54d4578
@ -451,7 +451,7 @@ return [
|
|||||||
],
|
],
|
||||||
LogoutController::class => [
|
LogoutController::class => [
|
||||||
'class' => LogoutController::class,
|
'class' => LogoutController::class,
|
||||||
'arguments' => [AuthenticationPluginFactory::class],
|
'arguments' => [AuthenticationPluginFactory::class, ResponseRenderer::class],
|
||||||
],
|
],
|
||||||
NavigationController::class => [
|
NavigationController::class => [
|
||||||
'class' => NavigationController::class,
|
'class' => NavigationController::class,
|
||||||
|
|||||||
@ -11,19 +11,20 @@ use PhpMyAdmin\ResponseRenderer;
|
|||||||
use PhpMyAdmin\Routing\Route;
|
use PhpMyAdmin\Routing\Route;
|
||||||
|
|
||||||
#[Route('/logout', ['GET', 'POST'])]
|
#[Route('/logout', ['GET', 'POST'])]
|
||||||
final class LogoutController implements InvocableController
|
final readonly class LogoutController implements InvocableController
|
||||||
{
|
{
|
||||||
public function __construct(private readonly AuthenticationPluginFactory $authPluginFactory)
|
public function __construct(
|
||||||
{
|
private AuthenticationPluginFactory $authPluginFactory,
|
||||||
|
private ResponseRenderer $responseRenderer,
|
||||||
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __invoke(ServerRequest $request): Response
|
public function __invoke(ServerRequest $request): Response
|
||||||
{
|
{
|
||||||
$responseRenderer = ResponseRenderer::getInstance();
|
|
||||||
if (! $request->isPost()) {
|
if (! $request->isPost()) {
|
||||||
$responseRenderer->redirect('./index.php?route=/');
|
$this->responseRenderer->redirect('./index.php?route=/');
|
||||||
|
|
||||||
return $responseRenderer->response();
|
return $this->responseRenderer->response();
|
||||||
}
|
}
|
||||||
|
|
||||||
$authPlugin = $this->authPluginFactory->create();
|
$authPlugin = $this->authPluginFactory->create();
|
||||||
|
|||||||
@ -9,20 +9,15 @@ use PhpMyAdmin\Http\Factory\ResponseFactory;
|
|||||||
use PhpMyAdmin\Http\ServerRequest;
|
use PhpMyAdmin\Http\ServerRequest;
|
||||||
use PhpMyAdmin\Plugins\AuthenticationPlugin;
|
use PhpMyAdmin\Plugins\AuthenticationPlugin;
|
||||||
use PhpMyAdmin\Plugins\AuthenticationPluginFactory;
|
use PhpMyAdmin\Plugins\AuthenticationPluginFactory;
|
||||||
use PhpMyAdmin\ResponseRenderer;
|
|
||||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer as ResponseRendererStub;
|
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||||
use PHPUnit\Framework\Attributes\CoversClass;
|
use PHPUnit\Framework\Attributes\CoversClass;
|
||||||
use ReflectionProperty;
|
|
||||||
|
|
||||||
#[CoversClass(LogoutController::class)]
|
#[CoversClass(LogoutController::class)]
|
||||||
class LogoutControllerTest extends AbstractTestCase
|
final class LogoutControllerTest extends AbstractTestCase
|
||||||
{
|
{
|
||||||
public function testValidLogout(): void
|
public function testValidLogout(): void
|
||||||
{
|
{
|
||||||
$responseStub = new ResponseRendererStub();
|
|
||||||
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, $responseStub);
|
|
||||||
|
|
||||||
$request = self::createStub(ServerRequest::class);
|
$request = self::createStub(ServerRequest::class);
|
||||||
$request->method('isPost')->willReturn(true);
|
$request->method('isPost')->willReturn(true);
|
||||||
|
|
||||||
@ -34,10 +29,8 @@ class LogoutControllerTest extends AbstractTestCase
|
|||||||
$factory = self::createStub(AuthenticationPluginFactory::class);
|
$factory = self::createStub(AuthenticationPluginFactory::class);
|
||||||
$factory->method('create')->willReturn($authPlugin);
|
$factory->method('create')->willReturn($authPlugin);
|
||||||
|
|
||||||
$response = (new LogoutController($factory))($request);
|
$response = (new LogoutController($factory, new ResponseRenderer()))($request);
|
||||||
|
|
||||||
self::assertSame($expectedResponse, $response);
|
self::assertSame($expectedResponse, $response);
|
||||||
|
|
||||||
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, null);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user