From 7e6248c796c29da0a3887c36de974557d41c95a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Thu, 12 Feb 2026 16:55:26 -0300 Subject: [PATCH] Extract ResponseRenderer dependency from InsertEdit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Uses DI instead. Signed-off-by: MaurĂ­cio Meneghini Fauth --- app/services.php | 1 + src/InsertEdit.php | 3 +- .../Table/ChangeControllerTest.php | 2 + .../Table/ReplaceControllerTest.php | 2 +- tests/unit/InsertEditTest.php | 39 +++++++------------ 5 files changed, 21 insertions(+), 26 deletions(-) diff --git a/app/services.php b/app/services.php index ab667cbe84..3a6cc38076 100644 --- a/app/services.php +++ b/app/services.php @@ -139,6 +139,7 @@ return [ FileListing::class, Template::class, Config::class, + ResponseRenderer::class, ], ], Middleware\ErrorHandling::class => [ diff --git a/src/InsertEdit.php b/src/InsertEdit.php index 7dd73880ec..27ff0cecf8 100644 --- a/src/InsertEdit.php +++ b/src/InsertEdit.php @@ -84,6 +84,7 @@ class InsertEdit private readonly FileListing $fileListing, private readonly Template $template, private readonly Config $config, + private readonly ResponseRenderer $responseRenderer, ) { } @@ -155,7 +156,7 @@ class InsertEdit $rows[$keyId] = $result[$keyId]->fetchAssoc(); if ($rows[$keyId] === []) { - ResponseRenderer::getInstance()->addHTML( + $this->responseRenderer->addHTML( Generator::getMessage( __('MySQL returned an empty result set (i.e. zero rows).'), $localQuery, diff --git a/tests/unit/Controllers/Table/ChangeControllerTest.php b/tests/unit/Controllers/Table/ChangeControllerTest.php index cd38087fa2..7dbde5b014 100644 --- a/tests/unit/Controllers/Table/ChangeControllerTest.php +++ b/tests/unit/Controllers/Table/ChangeControllerTest.php @@ -64,6 +64,7 @@ final class ChangeControllerTest extends AbstractTestCase new FileListing(), $template, $config, + $response, ); (new ChangeController( @@ -175,6 +176,7 @@ final class ChangeControllerTest extends AbstractTestCase new FileListing(), $template, $config, + $response, ); (new ChangeController( diff --git a/tests/unit/Controllers/Table/ReplaceControllerTest.php b/tests/unit/Controllers/Table/ReplaceControllerTest.php index b9cff5db8d..7e3f255e16 100644 --- a/tests/unit/Controllers/Table/ReplaceControllerTest.php +++ b/tests/unit/Controllers/Table/ReplaceControllerTest.php @@ -120,7 +120,7 @@ class ReplaceControllerTest extends AbstractTestCase $replaceController = new ReplaceController( $response, - new InsertEdit($dbi, $relation, $transformations, new FileListing(), $template, $config), + new InsertEdit($dbi, $relation, $transformations, new FileListing(), $template, $config, $response), $transformations, $relation, $dbi, diff --git a/tests/unit/InsertEditTest.php b/tests/unit/InsertEditTest.php index 60470d2125..560127c888 100644 --- a/tests/unit/InsertEditTest.php +++ b/tests/unit/InsertEditTest.php @@ -16,11 +16,11 @@ use PhpMyAdmin\EditField; use PhpMyAdmin\FileListing; use PhpMyAdmin\InsertEdit; use PhpMyAdmin\InsertEditColumn; -use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Table; use PhpMyAdmin\Template; use PhpMyAdmin\Tests\Stubs\DbiDummy; use PhpMyAdmin\Tests\Stubs\DummyResult; +use PhpMyAdmin\Tests\Stubs\ResponseRenderer; use PhpMyAdmin\Transformations; use PhpMyAdmin\TypeClass; use PhpMyAdmin\Url; @@ -79,6 +79,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $this->dbi->setVersion([ @@ -87,18 +88,6 @@ class InsertEditTest extends AbstractTestCase ]); } - /** - * Teardown all objects - */ - protected function tearDown(): void - { - parent::tearDown(); - - $response = new ReflectionProperty(ResponseRenderer::class, 'instance'); - $response->setValue(null, null); - DatabaseInterface::$instance = null; - } - /** * Test for getFormParametersForInsertForm */ @@ -194,6 +183,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = $this->callFunction( $this->insertEdit, @@ -241,6 +231,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = $this->callFunction( @@ -278,6 +269,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = $this->callFunction( @@ -995,6 +987,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $currentRow['f'] = '123'; @@ -1203,6 +1196,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $this->insertEdit->setSessionForEditNext('`a` = 2'); @@ -1286,6 +1280,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = $this->insertEdit->executeSqlQuery($query); @@ -1310,6 +1305,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = $this->insertEdit->executeSqlQuery($query); @@ -1344,6 +1340,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = (array) $this->callFunction( @@ -1397,6 +1394,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = $this->insertEdit->getDisplayValueForForeignTableColumn('=1', $map, 'f'); @@ -2136,6 +2134,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $this->insertEdit->verifyWhetherValueCanBeTruncatedAndAppendExtraData('db', 'table', 'a', $extraData); @@ -2186,6 +2185,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = $this->insertEdit->getTableColumns('db', 'table'); @@ -2220,15 +2220,6 @@ class InsertEditTest extends AbstractTestCase $_POST['after_insert'] = 'edit_next'; $_POST['default_action'] = 'insert'; - $responseMock = $this->getMockBuilder(ResponseRenderer::class) - ->disableOriginalConstructor() - ->onlyMethods(['addHtml']) - ->getMock(); - - $restoreInstance = ResponseRenderer::getInstance(); - $response = new ReflectionProperty(ResponseRenderer::class, 'instance'); - $response->setValue(null, $responseMock); - $config = Config::getInstance(); $relation = new Relation($dbi); $this->insertEdit = new InsertEdit( @@ -2238,6 +2229,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); $result = $this->insertEdit->determineInsertOrEdit('1', 'db', 'table'); @@ -2254,8 +2246,6 @@ class InsertEditTest extends AbstractTestCase $result = $this->insertEdit->determineInsertOrEdit(null, 'db', 'table'); - $response->setValue(null, $restoreInstance); - self::assertSame( [true, null, $resultStub, [[], []], false, 'edit_next'], $result, @@ -2292,6 +2282,7 @@ class InsertEditTest extends AbstractTestCase new FileListing(), new Template($config), $config, + new ResponseRenderer(), ); self::assertSame(