From 7dc44b2ea945538dc456cdcb887cbf65f6bed395 Mon Sep 17 00:00:00 2001 From: Leonardo Strozzi Date: Fri, 29 Jun 2018 20:14:02 -0300 Subject: [PATCH] Fix tests for server_engine Signed-off-by: Leonardo Strozzi --- .../Server/ServerEnginesController.php | 47 ++++++++++++------- .../Server/ServerEnginesControllerTest.php | 25 +++++----- 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/libraries/classes/Controllers/Server/ServerEnginesController.php b/libraries/classes/Controllers/Server/ServerEnginesController.php index 60d98ddf12..bcb779964b 100644 --- a/libraries/classes/Controllers/Server/ServerEnginesController.php +++ b/libraries/classes/Controllers/Server/ServerEnginesController.php @@ -43,7 +43,6 @@ class ServerEnginesController extends Controller 'type' => 'engines', ]) ); - $html = ''; /** * Did the user request information about a certain storage engine? @@ -56,24 +55,36 @@ class ServerEnginesController extends Controller ]); } else { $engine = StorageEngine::getEngine($_REQUEST['engine']); - $page = isset($_REQUEST['page']) ? $_REQUEST['page'] : ''; - $pageOutput = ! empty($page) ? $engine->getPage($page) : ''; - - /** - * Displays details about a given Storage Engine - */ - $html = $this->template->render('server/engines/show_engine', [ - 'title' => $engine->getTitle(), - 'help_page' => $engine->getMysqlHelpPage(), - 'comment' => $engine->getComment(), - 'info_pages' => $engine->getInfoPages(), - 'support' => $engine->getSupportInformationMessage(), - 'variables' => $engine->getHtmlVariables(), - 'page_output' => $pageOutput, - 'page' => $page, - 'engine' => $_REQUEST['engine'], - ]); + $html = $this->_getHtmlForShowEngine($engine); } $this->response->addHTML($html); } + + /** + * Returns HTML code for engine inspect + * + * @param StorageEngine $engine engine beeing inspected + * + * @return void + */ + private function _getHtmlForShowEngine(StorageEngine $engine):string + { + $page = isset($_REQUEST['page']) ? $_REQUEST['page'] : ''; + $pageOutput = ! empty($page) ? $engine->getPage($page) : ''; + + /** + * Displays details about a given Storage Engine + */ + return $this->template->render('server/engines/show_engine', [ + 'title' => $engine->getTitle(), + 'help_page' => $engine->getMysqlHelpPage(), + 'comment' => $engine->getComment(), + 'info_pages' => $engine->getInfoPages(), + 'support' => $engine->getSupportInformationMessage(), + 'variables' => $engine->getHtmlVariables(), + 'page_output' => $pageOutput, + 'page' => $page, + 'engine' => $_REQUEST['engine'], + ]); + } } diff --git a/test/classes/Controllers/Server/ServerEnginesControllerTest.php b/test/classes/Controllers/Server/ServerEnginesControllerTest.php index 03624b6c3a..d069bc76ed 100644 --- a/test/classes/Controllers/Server/ServerEnginesControllerTest.php +++ b/test/classes/Controllers/Server/ServerEnginesControllerTest.php @@ -47,6 +47,7 @@ class ServerEnginesControllerTest extends PmaTestCase $GLOBALS['db'] = 'db'; $GLOBALS['table'] = 'table'; $GLOBALS['PMA_PHP_SELF'] = 'index.php'; + $GLOBALS['cfg']['Server'] = array('DisableIS' => false); $this->container = Container::getDefaultContainer(); $this->container->set('PhpMyAdmin\Response', new ResponseStub()); @@ -54,21 +55,18 @@ class ServerEnginesControllerTest extends PmaTestCase } /** - * Tests for _getHtmlForAllServerEngines() method + * Tests for indexAction() method * * @return void */ - public function testGetHtmlForAllServerEngines() + public function testHtmlForAllServerEngines() { - $class = new ReflectionClass('\PhpMyAdmin\Controllers\Server\ServerEnginesController'); - $method = $class->getMethod('_getHtmlForAllServerEngines'); - $method->setAccessible(true); - - $ctrl = new ServerEnginesController( + $class = new ServerEnginesController( $this->container->get('response'), $this->container->get('dbi') ); - $html = $method->invoke($ctrl); + $class->indexAction(); + $html = $this->container->get('response')->getHTMLResult(); //validate 1: Item header $this->assertContains( @@ -114,20 +112,21 @@ class ServerEnginesControllerTest extends PmaTestCase * * @return void */ - public function testGetHtmlForServerEngine() + public function testHtmlForServerEngine() { $_REQUEST['engine'] = "Pbxt"; $_REQUEST['page'] = "page"; + + $class = new ReflectionClass('PhpMyAdmin\Controllers\Server\ServerEnginesController'); + $method = $class->getMethod('_getHtmlForShowEngine'); + $method->setAccessible(true); + //Mock DBI $dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface') ->disableOriginalConstructor() ->getMock(); $GLOBALS['dbi'] = $dbi; - $class = new ReflectionClass('\PhpMyAdmin\Controllers\Server\ServerEnginesController'); - $method = $class->getMethod('_getHtmlForServerEngine'); - $method->setAccessible(true); - $engine_plugin = StorageEngine::getEngine("Pbxt"); $ctrl = new ServerEnginesController( $this->container->get('response'),