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 => [
|
||||
'class' => LogoutController::class,
|
||||
'arguments' => [AuthenticationPluginFactory::class],
|
||||
'arguments' => [AuthenticationPluginFactory::class, ResponseRenderer::class],
|
||||
],
|
||||
NavigationController::class => [
|
||||
'class' => NavigationController::class,
|
||||
|
||||
@ -11,19 +11,20 @@ use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Routing\Route;
|
||||
|
||||
#[Route('/logout', ['GET', 'POST'])]
|
||||
final class LogoutController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly AuthenticationPluginFactory $authPluginFactory)
|
||||
final readonly class LogoutController implements InvocableController
|
||||
{
|
||||
public function __construct(
|
||||
private AuthenticationPluginFactory $authPluginFactory,
|
||||
private ResponseRenderer $responseRenderer,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response
|
||||
{
|
||||
$responseRenderer = ResponseRenderer::getInstance();
|
||||
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();
|
||||
|
||||
@ -9,20 +9,15 @@ use PhpMyAdmin\Http\Factory\ResponseFactory;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Plugins\AuthenticationPlugin;
|
||||
use PhpMyAdmin\Plugins\AuthenticationPluginFactory;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer as ResponseRendererStub;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use ReflectionProperty;
|
||||
|
||||
#[CoversClass(LogoutController::class)]
|
||||
class LogoutControllerTest extends AbstractTestCase
|
||||
final class LogoutControllerTest extends AbstractTestCase
|
||||
{
|
||||
public function testValidLogout(): void
|
||||
{
|
||||
$responseStub = new ResponseRendererStub();
|
||||
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, $responseStub);
|
||||
|
||||
$request = self::createStub(ServerRequest::class);
|
||||
$request->method('isPost')->willReturn(true);
|
||||
|
||||
@ -34,10 +29,8 @@ class LogoutControllerTest extends AbstractTestCase
|
||||
$factory = self::createStub(AuthenticationPluginFactory::class);
|
||||
$factory->method('create')->willReturn($authPlugin);
|
||||
|
||||
$response = (new LogoutController($factory))($request);
|
||||
$response = (new LogoutController($factory, new ResponseRenderer()))($request);
|
||||
|
||||
self::assertSame($expectedResponse, $response);
|
||||
|
||||
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user