diff --git a/test/libraries/PMA_server_engines_test.php b/test/libraries/PMA_server_engines_test.php new file mode 100644 index 0000000000..f02ad42de7 --- /dev/null +++ b/test/libraries/PMA_server_engines_test.php @@ -0,0 +1,171 @@ +getMockBuilder('PMA_DatabaseInterface') + ->disableOriginalConstructor() + ->getMock(); + + $GLOBALS['dbi'] = $dbi; + + //expects return value + $engines = array( + "FEDERATED" => array( + "Engine" => "FEDERATED", + "Support" => "NO", + "Comment" => "Federated MySQL storage engine", + "Transactions" => NULL, + "Savepoints" => NULL, + ), + "MRG_MYISAM" => array( + "Engine" => "MRG_MYISAM", + "Support" => "YES", + "Comment" => "Collection of identical MyISAM tables", + "Transactions" => "NO", + "Savepoints" => "NO", + ) + ); + + //expects functions + $dbi->expects($this->once())->method('fetchResult') + ->will($this->returnValue($engines)); + + //test PMA_getHtmlForAllServerEngines + $html = PMA_getHtmlForServerEngines(); + + //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( + 'href="server_engines.php?engine=FEDERATED', + $html + ); + + //validate 3: MRG_MYISAM + $this->assertContains( + 'Collection of identical MyISAM tables', + $html + ); + $this->assertContains( + 'MRG_MYISAM', + $html + ); + $this->assertContains( + 'href="server_engines.php?engine=MRG_MYISAM', + $html + ); + } + + /** + * Test for PMA_getHtmlForServerEngines for specific engines "FEDERATED" + * + * @return void + */ + public function testPMA_getPluginAndModuleInfo_Specific() + { + $_REQUEST['engine'] = "FEDERATED"; + //Mock DBI + $dbi = $this->getMockBuilder('PMA_DatabaseInterface') + ->disableOriginalConstructor() + ->getMock(); + + $GLOBALS['dbi'] = $dbi; + + //test PMA_getHtmlForAllServerEngines for specific engines "FEDERATED" + $html = PMA_getHtmlForServerEngines(); + + //validate 1: Engine header + $this->assertContains( + 'FEDERATED', + $html + ); + $this->assertContains( + 'Federated MySQL storage engine', + $html + ); + $this->assertContains( + 'This MySQL server does not support the FEDERATED storage engine.', + $html + ); + $this->assertContains( + 'There is no detailed status information available for this storage engine', + $html + ); + } +}