From 84caeb5a8a8ac5baf009a053aa382be4eb04dfab Mon Sep 17 00:00:00 2001 From: xmujay Date: Sat, 6 Jul 2013 10:39:39 +0800 Subject: [PATCH 1/4] Unit test case for refactored functions: PMA_server_engines --- test/libraries/PMA_server_engines_test.php | 171 +++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 test/libraries/PMA_server_engines_test.php 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 + ); + } +} From fbb84c49d5f7394fafe5955bf66804beaa9dcd00 Mon Sep 17 00:00:00 2001 From: xmujay Date: Sat, 6 Jul 2013 11:18:58 +0800 Subject: [PATCH 2/4] use mock data for assertion --- test/libraries/PMA_server_engines_test.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/libraries/PMA_server_engines_test.php b/test/libraries/PMA_server_engines_test.php index f02ad42de7..8bc7a634d1 100644 --- a/test/libraries/PMA_server_engines_test.php +++ b/test/libraries/PMA_server_engines_test.php @@ -9,12 +9,17 @@ /* * Include to test. */ + +if (! defined('PMA_DRIZZLE')) { + define('PMA_DRIZZLE', 0); +} + require_once 'libraries/Util.class.php'; require_once 'libraries/php-gettext/gettext.inc'; require_once 'libraries/url_generating.lib.php'; require_once 'libraries/server_engines.lib.php'; require_once 'libraries/Theme.class.php'; -require_once 'libraries/database_interface.inc.php'; +require_once 'libraries/DatabaseInterface.class.php'; require_once 'libraries/Message.class.php'; require_once 'libraries/sanitizing.lib.php'; require_once 'libraries/sqlparser.lib.php'; From a90ae2550fc6f1b82e11765109012d50a8fb6ae6 Mon Sep 17 00:00:00 2001 From: xmujay Date: Sat, 6 Jul 2013 11:45:38 +0800 Subject: [PATCH 3/4] add FEDERATED to DBI dummy data --- libraries/dbi/DBIDummy.class.php | 5 +++ test/classes/PMA_StorageEngine_test.php | 17 ++++---- test/libraries/PMA_server_engines_test.php | 50 ++++------------------ 3 files changed, 23 insertions(+), 49 deletions(-) diff --git a/libraries/dbi/DBIDummy.class.php b/libraries/dbi/DBIDummy.class.php index fb252c7a6e..1361629e23 100644 --- a/libraries/dbi/DBIDummy.class.php +++ b/libraries/dbi/DBIDummy.class.php @@ -46,6 +46,11 @@ $GLOBALS['dummy_queries'] = array( 'Support' => 'NO', 'Comment' => 'dummy2 comment' ), + array( + 'Engine' => 'FEDERATED', + 'Support' => 'NO', + 'Comment' => 'Federated MySQL storage engine' + ), ) ), array( diff --git a/test/classes/PMA_StorageEngine_test.php b/test/classes/PMA_StorageEngine_test.php index 58b9fd77fd..b245735a29 100644 --- a/test/classes/PMA_StorageEngine_test.php +++ b/test/classes/PMA_StorageEngine_test.php @@ -73,6 +73,11 @@ class PMA_StorageEngineTest extends PHPUnit_Framework_TestCase 'Support' => 'NO', 'Comment' => 'dummy2 comment', ), + 'FEDERATED' => array( + 'Engine' => 'FEDERATED', + 'Support' => 'NO', + 'Comment' => 'Federated MySQL storage engine' + ), ), $this->object->getStorageEngines() ); @@ -87,15 +92,11 @@ class PMA_StorageEngineTest extends PHPUnit_Framework_TestCase */ public function testGetHtmlSelect() { + $html = $this->object->getHtmlSelect(); - $this->assertEquals( - ' -', - $this->object->getHtmlSelect() + $this->assertContains( + '