Remove ResponseRenderer::disable from ChangePrefixFormController
Creates a new Response object instead of using the response from ResponseRenderer class. Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
5c7667369f
commit
4d0565b7cd
@ -251,7 +251,7 @@ return [
|
||||
],
|
||||
Database\Structure\ChangePrefixFormController::class => [
|
||||
'class' => Database\Structure\ChangePrefixFormController::class,
|
||||
'arguments' => ['$response' => '@response'],
|
||||
'arguments' => ['@response', '@' . ResponseFactory::class, '@template'],
|
||||
],
|
||||
Database\Structure\CopyFormController::class => [
|
||||
'class' => Database\Structure\CopyFormController::class,
|
||||
|
||||
@ -1329,11 +1329,6 @@
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/ChangePrefixFormController.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[__construct]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Controllers/Database/Structure/CopyFormController.php">
|
||||
<DeprecatedMethod>
|
||||
<code><![CDATA[DatabaseInterface::getInstance()]]></code>
|
||||
|
||||
@ -6,16 +6,21 @@ namespace PhpMyAdmin\Controllers\Database\Structure;
|
||||
|
||||
use PhpMyAdmin\Controllers\InvocableController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Factory\ResponseFactory;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Template;
|
||||
|
||||
use function __;
|
||||
|
||||
final class ChangePrefixFormController implements InvocableController
|
||||
{
|
||||
public function __construct(private readonly ResponseRenderer $response)
|
||||
{
|
||||
public function __construct(
|
||||
private readonly ResponseRenderer $response,
|
||||
private readonly ResponseFactory $responseFactory,
|
||||
private readonly Template $template,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(ServerRequest $request): Response|null
|
||||
@ -40,12 +45,14 @@ final class ChangePrefixFormController implements InvocableController
|
||||
$urlParams['selected'][] = $selectedValue;
|
||||
}
|
||||
|
||||
$this->response->disable();
|
||||
$this->response->render('database/structure/change_prefix_form', [
|
||||
$response = $this->responseFactory->createResponse();
|
||||
foreach ($this->response->getHeader()->getHttpHeaders() as $name => $value) {
|
||||
$response = $response->withHeader($name, $value);
|
||||
}
|
||||
|
||||
return $response->write($this->template->render('database/structure/change_prefix_form', [
|
||||
'route' => $route,
|
||||
'url_params' => $urlParams,
|
||||
]);
|
||||
|
||||
return null;
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Controllers\Database\Structure;
|
||||
|
||||
use Fig\Http\Message\StatusCodeInterface;
|
||||
use PhpMyAdmin\Controllers\Database\Structure\ChangePrefixFormController;
|
||||
use PhpMyAdmin\Current;
|
||||
use PhpMyAdmin\Http\Factory\ResponseFactory;
|
||||
use PhpMyAdmin\Http\Factory\ServerRequestFactory;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
|
||||
#[CoversClass(ChangePrefixFormController::class)]
|
||||
final class ChangePrefixFormControllerTest extends AbstractTestCase
|
||||
{
|
||||
public function testChangePrefixModal(): void
|
||||
{
|
||||
Current::$database = 'test_db';
|
||||
|
||||
$request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/')
|
||||
->withQueryParams(['db' => 'test_db'])
|
||||
->withParsedBody(['selected_tbl' => ['test_table']]);
|
||||
|
||||
$template = new Template();
|
||||
$controller = new ChangePrefixFormController(new ResponseRenderer(), ResponseFactory::create(), $template);
|
||||
$response = $controller($request);
|
||||
|
||||
$expected = $template->render('database/structure/change_prefix_form', [
|
||||
'route' => '/database/structure/replace-prefix',
|
||||
'url_params' => ['db' => 'test_db', 'selected' => ['test_table']],
|
||||
]);
|
||||
|
||||
self::assertNotNull($response);
|
||||
self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode());
|
||||
self::assertSame(['text/html; charset=utf-8'], $response->getHeader('Content-Type'));
|
||||
self::assertSame($expected, (string) $response->getBody());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user