false); $this->container = Container::getDefaultContainer(); $this->container->set('PhpMyAdmin\Response', new ResponseStub()); $this->container->alias('response', 'PhpMyAdmin\Response'); } /** * Tests for indexAction() method * * @return void */ public function testHtmlForAllServerEngines() { $class = new ServerEnginesController( $this->container->get('response'), $this->container->get('dbi') ); $class->indexAction(); $html = $this->container->get('response')->getHTMLResult(); //validate 1: Item header $this->assertContains( 'Storage Engine', $html ); $this->assertContains( 'Description', $html ); //validate 2: FEDERATED $this->assertContains( 'Federated MySQL storage engine', $html ); $this->assertContains( 'FEDERATED', $html ); $this->assertContains( 'server_engines.php?engine=FEDERATED', $html ); //validate 3: dummy $this->assertContains( 'dummy comment', $html ); $this->assertContains( 'dummy', $html ); $this->assertContains( 'server_engines.php?engine=dummy', $html ); } /** * Tests for _getHtmlForServerEngine() method * * @return void */ 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; $engine_plugin = StorageEngine::getEngine("Pbxt"); $ctrl = new ServerEnginesController( $this->container->get('response'), $this->container->get('dbi') ); $html = $method->invoke($ctrl, $engine_plugin); //validate 1: Engine title $this->assertContains( htmlspecialchars($engine_plugin->getTitle()), $html ); //validate 2: Engine Mysql Help Page $this->assertContains( Util::showMySQLDocu($engine_plugin->getMysqlHelpPage()), $html ); //validate 3: Engine Comment $this->assertContains( htmlspecialchars($engine_plugin->getComment()), $html ); //validate 4: Engine Info Pages $this->assertContains( __('Variables'), $html ); $this->assertContains( Url::getCommon( ['engine' => $_REQUEST['engine'], 'page' => "Documentation"] ), $html ); //validate 5: other items $this->assertContains( Url::getCommon(['engine' => $_REQUEST['engine']]), $html ); $this->assertContains( $engine_plugin->getSupportInformationMessage(), $html ); $this->assertContains( 'There is no detailed status information available for this ' . 'storage engine.', $html ); } }