From ef60f1df380306019185511456b33dbccc5effca Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Mon, 19 Oct 2026 21:22:39 +0100 Subject: [PATCH] New respondWithErrorMessage() Adds a new helper method to remove some visual clutter. Signed-off-by: Kamil Tekiela --- .../Database/DesignerController.php | 10 +----- src/Controllers/Database/ExportController.php | 9 +---- src/Controllers/Database/ImportController.php | 9 +---- .../Database/RoutinesController.php | 4 +-- src/Controllers/Database/SearchController.php | 9 +---- src/Controllers/Database/SqlController.php | 10 +----- .../Structure/FavoriteTableController.php | 2 +- .../Structure/RealRowCountController.php | 2 +- .../Database/StructureController.php | 10 +----- .../Database/TrackingController.php | 9 +---- src/Controllers/Events/ExportController.php | 10 +----- src/Controllers/Events/IndexController.php | 10 +----- .../JavaScriptMessagesController.php | 2 +- .../Database/CollationController.php | 2 +- .../Operations/DatabaseController.php | 9 +---- .../Operations/TableController.php | 18 ++-------- src/Controllers/Operations/ViewController.php | 18 ++-------- .../Server/Databases/DestroyController.php | 2 +- src/Controllers/Table/AddFieldController.php | 18 ++-------- src/Controllers/Table/ChangeController.php | 19 ++-------- src/Controllers/Table/ChartController.php | 35 +++---------------- .../Table/DeleteConfirmController.php | 19 ++-------- .../DropColumnConfirmationController.php | 18 ++-------- .../Table/FindReplaceController.php | 18 ++-------- .../Table/GisVisualizationController.php | 9 +---- src/Controllers/Table/ImportController.php | 18 ++-------- .../Table/IndexRenameController.php | 18 ++-------- src/Controllers/Table/IndexesController.php | 21 ++--------- src/Controllers/Table/SearchController.php | 19 ++-------- src/Controllers/Table/SqlController.php | 19 ++-------- .../Table/Structure/PrimaryController.php | 21 ++--------- src/Controllers/Table/StructureController.php | 19 ++-------- src/Controllers/Table/TrackingController.php | 9 +---- .../Table/ZoomSearchController.php | 19 ++-------- src/Controllers/Triggers/IndexController.php | 4 +-- src/Controllers/View/CreateController.php | 9 +---- src/ResponseRenderer.php | 12 +++++++ .../Events/ExportControllerTest.php | 9 +++-- .../Events/IndexControllerTest.php | 9 +++-- .../Databases/DestroyControllerTest.php | 2 +- 40 files changed, 83 insertions(+), 406 deletions(-) diff --git a/src/Controllers/Database/DesignerController.php b/src/Controllers/Database/DesignerController.php index 141d57c48e..e37f2f294c 100644 --- a/src/Controllers/Database/DesignerController.php +++ b/src/Controllers/Database/DesignerController.php @@ -13,7 +13,6 @@ use PhpMyAdmin\DbTableExists; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; -use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Routing\Route; use PhpMyAdmin\Template; @@ -170,14 +169,7 @@ final readonly class DesignerController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $scriptDisplayField = $this->designerCommon->getTablesInfo(); diff --git a/src/Controllers/Database/ExportController.php b/src/Controllers/Database/ExportController.php index 75da28f49f..007baa6914 100644 --- a/src/Controllers/Database/ExportController.php +++ b/src/Controllers/Database/ExportController.php @@ -52,14 +52,7 @@ final readonly class ExportController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } UrlParams::$params['goto'] = Url::getFromRoute('/database/export'); diff --git a/src/Controllers/Database/ImportController.php b/src/Controllers/Database/ImportController.php index 4f2b03e3f5..e9e313a760 100644 --- a/src/Controllers/Database/ImportController.php +++ b/src/Controllers/Database/ImportController.php @@ -57,14 +57,7 @@ final readonly class ImportController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $uploadId = $this->ajax->uploadProgressSetup(); diff --git a/src/Controllers/Database/RoutinesController.php b/src/Controllers/Database/RoutinesController.php index 87f885b293..e1f5d015af 100644 --- a/src/Controllers/Database/RoutinesController.php +++ b/src/Controllers/Database/RoutinesController.php @@ -75,7 +75,7 @@ final readonly class RoutinesController implements InvocableController if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { return $this->response->redirectToRoute( '/', - ['reload' => true, 'message' => __('No databases selected.')], + ['reload' => true, 'message' => __('No database selected.')], ); } @@ -93,7 +93,7 @@ final readonly class RoutinesController implements InvocableController if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { return $this->response->redirectToRoute( '/', - ['reload' => true, 'message' => __('No databases selected.')], + ['reload' => true, 'message' => __('No database selected.')], ); } } diff --git a/src/Controllers/Database/SearchController.php b/src/Controllers/Database/SearchController.php index 4c956b53f3..cdb5c4700e 100644 --- a/src/Controllers/Database/SearchController.php +++ b/src/Controllers/Database/SearchController.php @@ -48,14 +48,7 @@ final readonly class SearchController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } if (! $this->config->config->UseDbSearch) { diff --git a/src/Controllers/Database/SqlController.php b/src/Controllers/Database/SqlController.php index 41828c821c..50768bec35 100644 --- a/src/Controllers/Database/SqlController.php +++ b/src/Controllers/Database/SqlController.php @@ -11,7 +11,6 @@ use PhpMyAdmin\DbTableExists; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; -use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Routing\Route; use PhpMyAdmin\SqlQueryForm; @@ -49,14 +48,7 @@ readonly class SqlController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } /** diff --git a/src/Controllers/Database/Structure/FavoriteTableController.php b/src/Controllers/Database/Structure/FavoriteTableController.php index c3a62ad1eb..7702f0b680 100644 --- a/src/Controllers/Database/Structure/FavoriteTableController.php +++ b/src/Controllers/Database/Structure/FavoriteTableController.php @@ -62,7 +62,7 @@ final readonly class FavoriteTableController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); + $this->response->addJSON('message', Message::error(__('No database selected.'))); return $this->response->response(); } diff --git a/src/Controllers/Database/Structure/RealRowCountController.php b/src/Controllers/Database/Structure/RealRowCountController.php index 0b22634fee..df7885708c 100644 --- a/src/Controllers/Database/Structure/RealRowCountController.php +++ b/src/Controllers/Database/Structure/RealRowCountController.php @@ -49,7 +49,7 @@ final readonly class RealRowCountController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); + $this->response->addJSON('message', Message::error(__('No database selected.'))); return $this->response->response(); } diff --git a/src/Controllers/Database/StructureController.php b/src/Controllers/Database/StructureController.php index a65305de78..66dc8f0cdb 100644 --- a/src/Controllers/Database/StructureController.php +++ b/src/Controllers/Database/StructureController.php @@ -22,7 +22,6 @@ use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; -use PhpMyAdmin\Message; use PhpMyAdmin\Query\Utilities; use PhpMyAdmin\Replication\Replication; use PhpMyAdmin\Replication\ReplicationInfo; @@ -155,14 +154,7 @@ final class StructureController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $this->response->addScriptFiles(['database/structure.js', 'table/change.js']); diff --git a/src/Controllers/Database/TrackingController.php b/src/Controllers/Database/TrackingController.php index af9821b296..5e9f0e1ff8 100644 --- a/src/Controllers/Database/TrackingController.php +++ b/src/Controllers/Database/TrackingController.php @@ -50,14 +50,7 @@ final readonly class TrackingController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } UrlParams::$params['goto'] = Url::getFromRoute('/table/tracking'); diff --git a/src/Controllers/Events/ExportController.php b/src/Controllers/Events/ExportController.php index 0727c0d78a..1eccb919b8 100644 --- a/src/Controllers/Events/ExportController.php +++ b/src/Controllers/Events/ExportController.php @@ -35,15 +35,7 @@ final readonly class ExportController implements InvocableController { $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - $message = __('No database selected.'); - if (! $request->isAjax()) { - return $this->responseRenderer->redirectToRoute('/', ['reload' => true, 'message' => $message]); - } - - $this->responseRenderer->addJSON('message', $message); - $this->responseRenderer->setRequestStatus(false); - - return $this->responseRenderer->response(); + return $this->responseRenderer->respondWithErrorMessage(__('No database selected.')); } $this->responseRenderer->addScriptFiles(['events.js', 'sql.js']); diff --git a/src/Controllers/Events/IndexController.php b/src/Controllers/Events/IndexController.php index 58d25fa9eb..1903ca5411 100644 --- a/src/Controllers/Events/IndexController.php +++ b/src/Controllers/Events/IndexController.php @@ -37,15 +37,7 @@ final readonly class IndexController implements InvocableController { $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - $message = __('No database selected.'); - if (! $request->isAjax()) { - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => $message]); - } - - $this->response->addJSON('message', $message); - $this->response->setRequestStatus(false); - - return $this->response->response(); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $this->response->addScriptFiles(['events.js', 'sql.js']); diff --git a/src/Controllers/JavaScriptMessagesController.php b/src/Controllers/JavaScriptMessagesController.php index 424593c68e..e18e7ec945 100644 --- a/src/Controllers/JavaScriptMessagesController.php +++ b/src/Controllers/JavaScriptMessagesController.php @@ -328,7 +328,7 @@ final readonly class JavaScriptMessagesController implements InvocableController 'It seems that the connection to server has been lost. Please check your ' . 'network connectivity and server status.', ), - 'strNoDatabasesSelected' => __('No databases selected.'), + 'strNoDatabasesSelected' => __('No database selected.'), 'strNoTableSelected' => __('No table selected.'), 'strNoAccountSelected' => __('No accounts selected.'), 'strDroppingColumn' => __('Dropping column'), diff --git a/src/Controllers/Operations/Database/CollationController.php b/src/Controllers/Operations/Database/CollationController.php index 20187cdeed..8628a9a5a0 100644 --- a/src/Controllers/Operations/Database/CollationController.php +++ b/src/Controllers/Operations/Database/CollationController.php @@ -51,7 +51,7 @@ final readonly class CollationController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); + $this->response->addJSON('message', Message::error(__('No database selected.'))); return $this->response->response(); } diff --git a/src/Controllers/Operations/DatabaseController.php b/src/Controllers/Operations/DatabaseController.php index 1ec46b99ed..9628f2ce79 100644 --- a/src/Controllers/Operations/DatabaseController.php +++ b/src/Controllers/Operations/DatabaseController.php @@ -225,14 +225,7 @@ final readonly class DatabaseController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } UrlParams::$params['goto'] = Url::getFromRoute('/database/operations'); diff --git a/src/Controllers/Operations/TableController.php b/src/Controllers/Operations/TableController.php index 53438a3a31..55b18ce6e2 100644 --- a/src/Controllers/Operations/TableController.php +++ b/src/Controllers/Operations/TableController.php @@ -81,26 +81,12 @@ final readonly class TableController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } UrlParams::$params['goto'] = UrlParams::$params['back'] = Url::getFromRoute('/table/operations'); diff --git a/src/Controllers/Operations/ViewController.php b/src/Controllers/Operations/ViewController.php index 3f34b08f2e..4a84bfa914 100644 --- a/src/Controllers/Operations/ViewController.php +++ b/src/Controllers/Operations/ViewController.php @@ -57,26 +57,12 @@ final readonly class ViewController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } UrlParams::$params['goto'] = UrlParams::$params['back'] = Url::getFromRoute('/view/operations'); diff --git a/src/Controllers/Server/Databases/DestroyController.php b/src/Controllers/Server/Databases/DestroyController.php index 0b0eb4041b..aea584a148 100644 --- a/src/Controllers/Server/Databases/DestroyController.php +++ b/src/Controllers/Server/Databases/DestroyController.php @@ -59,7 +59,7 @@ final readonly class DestroyController implements InvocableController && $database !== $pmadb); if ($selectedDbs === []) { - $message = Message::error(__('No databases selected.')); + $message = Message::error(__('No database selected.')); $json = ['message' => $message]; $this->response->setRequestStatus($message->isSuccess()); $this->response->addJSON($json); diff --git a/src/Controllers/Table/AddFieldController.php b/src/Controllers/Table/AddFieldController.php index 9888c67fce..b378a14509 100644 --- a/src/Controllers/Table/AddFieldController.php +++ b/src/Controllers/Table/AddFieldController.php @@ -155,26 +155,12 @@ final readonly class AddFieldController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $this->response->addScriptFiles(['vendor/jquery/jquery.uitablefilter.js']); diff --git a/src/Controllers/Table/ChangeController.php b/src/Controllers/Table/ChangeController.php index 7166c8ab00..6b9c27b384 100644 --- a/src/Controllers/Table/ChangeController.php +++ b/src/Controllers/Table/ChangeController.php @@ -17,7 +17,6 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\InsertEdit; -use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Routing\Route; use PhpMyAdmin\Template; @@ -65,26 +64,12 @@ class ChangeController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $this->setInsertRowsParam($request->getParsedBodyParam('insert_rows')); diff --git a/src/Controllers/Table/ChartController.php b/src/Controllers/Table/ChartController.php index 058392e1a6..092f847303 100644 --- a/src/Controllers/Table/ChartController.php +++ b/src/Controllers/Table/ChartController.php @@ -81,29 +81,12 @@ final readonly class ChartController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute( - '/', - ['reload' => true, 'message' => __('No databases selected.')], - ); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $urlParams['goto'] = Url::getFromRoute($this->config->config->DefaultTabTable); @@ -115,17 +98,7 @@ final readonly class ChartController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute( - '/', - ['reload' => true, 'message' => __('No databases selected.')], - ); + return $this->response->respondWithErrorMessage(__('No database selected.')); } } else { $urlParams['goto'] = Url::getFromRoute($this->config->config->DefaultTabServer); @@ -202,7 +175,7 @@ final readonly class ChartController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); + $this->response->addJSON('message', Message::error(__('No database selected.'))); return; } diff --git a/src/Controllers/Table/DeleteConfirmController.php b/src/Controllers/Table/DeleteConfirmController.php index d2c31874ae..1750209d02 100644 --- a/src/Controllers/Table/DeleteConfirmController.php +++ b/src/Controllers/Table/DeleteConfirmController.php @@ -11,7 +11,6 @@ use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; -use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Routing\Route; use PhpMyAdmin\UrlParams; @@ -52,26 +51,12 @@ final readonly class DeleteConfirmController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $this->response->render('table/delete/confirm', [ diff --git a/src/Controllers/Table/DropColumnConfirmationController.php b/src/Controllers/Table/DropColumnConfirmationController.php index e0e67bf7fd..d16d89ec72 100644 --- a/src/Controllers/Table/DropColumnConfirmationController.php +++ b/src/Controllers/Table/DropColumnConfirmationController.php @@ -47,25 +47,11 @@ final readonly class DropColumnConfirmationController implements InvocableContro } if (! $this->dbTableExists->selectDatabase($db)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } if (! $this->dbTableExists->hasTable($db, $table)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $this->response->render('table/structure/drop_confirm', [ diff --git a/src/Controllers/Table/FindReplaceController.php b/src/Controllers/Table/FindReplaceController.php index d8003db19e..6352a99796 100644 --- a/src/Controllers/Table/FindReplaceController.php +++ b/src/Controllers/Table/FindReplaceController.php @@ -71,26 +71,12 @@ final class FindReplaceController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $this->loadTableInfo(); diff --git a/src/Controllers/Table/GisVisualizationController.php b/src/Controllers/Table/GisVisualizationController.php index 9cd0a298e5..d551196dd6 100644 --- a/src/Controllers/Table/GisVisualizationController.php +++ b/src/Controllers/Table/GisVisualizationController.php @@ -65,14 +65,7 @@ final readonly class GisVisualizationController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } // SQL query for retrieving GIS data diff --git a/src/Controllers/Table/ImportController.php b/src/Controllers/Table/ImportController.php index c1218b5185..0d5cdf97d9 100644 --- a/src/Controllers/Table/ImportController.php +++ b/src/Controllers/Table/ImportController.php @@ -66,26 +66,12 @@ final readonly class ImportController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } UrlParams::$params['goto'] = Url::getFromRoute('/table/import'); diff --git a/src/Controllers/Table/IndexRenameController.php b/src/Controllers/Table/IndexRenameController.php index 89b93d4b0f..80dcacea58 100644 --- a/src/Controllers/Table/IndexRenameController.php +++ b/src/Controllers/Table/IndexRenameController.php @@ -49,26 +49,12 @@ final readonly class IndexRenameController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $oldIndexName = $request->getParsedBodyParamAsStringOrNull('old_index'); diff --git a/src/Controllers/Table/IndexesController.php b/src/Controllers/Table/IndexesController.php index 1f296c7d02..64223736a0 100644 --- a/src/Controllers/Table/IndexesController.php +++ b/src/Controllers/Table/IndexesController.php @@ -61,29 +61,12 @@ final readonly class IndexesController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute( - '/', - ['reload' => true, 'message' => __('No databases selected.')], - ); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } } diff --git a/src/Controllers/Table/SearchController.php b/src/Controllers/Table/SearchController.php index 7cb7c10dc4..23890ef390 100644 --- a/src/Controllers/Table/SearchController.php +++ b/src/Controllers/Table/SearchController.php @@ -15,7 +15,6 @@ use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; -use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Routing\Route; use PhpMyAdmin\Sql; @@ -166,26 +165,12 @@ final class SearchController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $this->loadTableInfo(); diff --git a/src/Controllers/Table/SqlController.php b/src/Controllers/Table/SqlController.php index 55e6338610..e0345cb12a 100644 --- a/src/Controllers/Table/SqlController.php +++ b/src/Controllers/Table/SqlController.php @@ -12,7 +12,6 @@ use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; -use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Routing\Route; use PhpMyAdmin\SqlQueryForm; @@ -54,26 +53,12 @@ readonly class SqlController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } /** diff --git a/src/Controllers/Table/Structure/PrimaryController.php b/src/Controllers/Table/Structure/PrimaryController.php index 84acfc8c4b..f9d87f6878 100644 --- a/src/Controllers/Table/Structure/PrimaryController.php +++ b/src/Controllers/Table/Structure/PrimaryController.php @@ -64,29 +64,12 @@ final readonly class PrimaryController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute( - '/', - ['reload' => true, 'message' => __('No databases selected.')], - ); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $this->response->render('table/structure/primary', [ diff --git a/src/Controllers/Table/StructureController.php b/src/Controllers/Table/StructureController.php index 9b41771282..7b448ec3ec 100644 --- a/src/Controllers/Table/StructureController.php +++ b/src/Controllers/Table/StructureController.php @@ -23,7 +23,6 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Indexes\Index; -use PhpMyAdmin\Message; use PhpMyAdmin\Partitioning\Partition; use PhpMyAdmin\Query\Utilities; use PhpMyAdmin\ResponseRenderer; @@ -88,26 +87,12 @@ readonly class StructureController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $primary = Index::getPrimary($this->dbi, Current::$table, Current::$database); diff --git a/src/Controllers/Table/TrackingController.php b/src/Controllers/Table/TrackingController.php index 07a331c7dd..3e25ec868e 100644 --- a/src/Controllers/Table/TrackingController.php +++ b/src/Controllers/Table/TrackingController.php @@ -64,14 +64,7 @@ final readonly class TrackingController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $activeMessage = ''; diff --git a/src/Controllers/Table/ZoomSearchController.php b/src/Controllers/Table/ZoomSearchController.php index 30d0fecd0c..cac08ab8e5 100644 --- a/src/Controllers/Table/ZoomSearchController.php +++ b/src/Controllers/Table/ZoomSearchController.php @@ -16,7 +16,6 @@ use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; -use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Routing\Route; use PhpMyAdmin\Table\Search; @@ -97,26 +96,12 @@ final class ZoomSearchController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } $tableName = TableName::tryFrom($request->getParam('table')); if ($tableName === null || ! $this->dbTableExists->hasTable($databaseName, $tableName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No table selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No table selected.')]); + return $this->response->respondWithErrorMessage(__('No table selected.')); } $this->loadTableInfo(); diff --git a/src/Controllers/Triggers/IndexController.php b/src/Controllers/Triggers/IndexController.php index 6da49ed034..748e5b1c44 100644 --- a/src/Controllers/Triggers/IndexController.php +++ b/src/Controllers/Triggers/IndexController.php @@ -63,7 +63,7 @@ final readonly class IndexController implements InvocableController if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { return $this->response->redirectToRoute( '/', - ['reload' => true, 'message' => __('No databases selected.')], + ['reload' => true, 'message' => __('No database selected.')], ); } @@ -81,7 +81,7 @@ final readonly class IndexController implements InvocableController if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { return $this->response->redirectToRoute( '/', - ['reload' => true, 'message' => __('No databases selected.')], + ['reload' => true, 'message' => __('No database selected.')], ); } } diff --git a/src/Controllers/View/CreateController.php b/src/Controllers/View/CreateController.php index 757a345132..fc3ad680d9 100644 --- a/src/Controllers/View/CreateController.php +++ b/src/Controllers/View/CreateController.php @@ -63,14 +63,7 @@ final class CreateController implements InvocableController $databaseName = DatabaseName::tryFrom($request->getParam('db')); if ($databaseName === null || ! $this->dbTableExists->selectDatabase($databaseName)) { - if ($request->isAjax()) { - $this->response->setRequestStatus(false); - $this->response->addJSON('message', Message::error(__('No databases selected.'))); - - return $this->response->response(); - } - - return $this->response->redirectToRoute('/', ['reload' => true, 'message' => __('No databases selected.')]); + return $this->response->respondWithErrorMessage(__('No database selected.')); } UrlParams::$params['goto'] = Url::getFromRoute('/table/structure'); diff --git a/src/ResponseRenderer.php b/src/ResponseRenderer.php index b4721ed091..b9bdb63d8f 100644 --- a/src/ResponseRenderer.php +++ b/src/ResponseRenderer.php @@ -461,4 +461,16 @@ class ResponseRenderer { $this->addHTML($this->template->render($templatePath, $templateData)); } + + public function respondWithErrorMessage(string $errorMessage): Response + { + if ($this->isAjax()) { + $this->setRequestStatus(false); + $this->addJSON('message', Message::error($errorMessage)); + + return $this->response(); + } + + return $this->redirectToRoute('/', ['reload' => true, 'message' => $errorMessage]); + } } diff --git a/tests/unit/Controllers/Events/ExportControllerTest.php b/tests/unit/Controllers/Events/ExportControllerTest.php index 99129df7e6..276e589e96 100644 --- a/tests/unit/Controllers/Events/ExportControllerTest.php +++ b/tests/unit/Controllers/Events/ExportControllerTest.php @@ -191,6 +191,7 @@ final class ExportControllerTest extends AbstractTestCase $dbi = $this->createDatabaseInterface(config: $config); $events = new Events($dbi, $config); $responseRenderer = new ResponseRenderer(); + $responseRenderer->setAjax(true); $request = ServerRequestFactory::create()->createServerRequest('GET', 'https://example.com/') ->withHeader('X-Requested-With', 'XMLHttpRequest'); @@ -198,8 +199,12 @@ final class ExportControllerTest extends AbstractTestCase $response = (new ExportController($responseRenderer, $events, new DbTableExists($dbi)))($request); self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode()); - self::assertSame('', (string) $response->getBody()); - self::assertSame(['message' => 'No database selected.'], $responseRenderer->getJSONResult()); + self::assertSame( + '{"success":false,"error":"
\n' + . ' \"\" No database selected.\n' + . '<\/div>\n"}', + (string) $response->getBody(), + ); self::assertFalse($responseRenderer->hasSuccessState()); } } diff --git a/tests/unit/Controllers/Events/IndexControllerTest.php b/tests/unit/Controllers/Events/IndexControllerTest.php index 5127c11a73..7095364029 100644 --- a/tests/unit/Controllers/Events/IndexControllerTest.php +++ b/tests/unit/Controllers/Events/IndexControllerTest.php @@ -154,6 +154,7 @@ final class IndexControllerTest extends AbstractTestCase $dbi = $this->createDatabaseInterface(config: $config); $template = new Template($config); $responseRenderer = new ResponseRenderer(); + $responseRenderer->setAjax(true); $request = ServerRequestFactory::create()->createServerRequest('GET', 'https://example.com/') ->withHeader('X-Requested-With', 'XMLHttpRequest'); @@ -166,8 +167,12 @@ final class IndexControllerTest extends AbstractTestCase ))($request); self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode()); - self::assertSame('', (string) $response->getBody()); - self::assertSame(['message' => 'No database selected.'], $responseRenderer->getJSONResult()); + self::assertSame( + '{"success":false,"error":"
\n' + . ' \"\" No database selected.\n' + . '<\/div>\n"}', + (string) $response->getBody(), + ); self::assertFalse($responseRenderer->hasSuccessState()); } diff --git a/tests/unit/Controllers/Server/Databases/DestroyControllerTest.php b/tests/unit/Controllers/Server/Databases/DestroyControllerTest.php index e9e3052578..c887658172 100644 --- a/tests/unit/Controllers/Server/Databases/DestroyControllerTest.php +++ b/tests/unit/Controllers/Server/Databases/DestroyControllerTest.php @@ -56,6 +56,6 @@ class DestroyControllerTest extends AbstractTestCase self::assertArrayHasKey('message', $actual); self::assertIsString($actual['message']); self::assertStringContainsString('