From 5733dd09e34ea7898d8ade62f0d30dac678dfe29 Mon Sep 17 00:00:00 2001 From: Nisarg Jhaveri Date: Tue, 30 Jun 2015 00:00:24 +0530 Subject: [PATCH] Add some unit tests - for Footer class - for navigation/PMA_Node_Database class - In Util class for foreign key check Signed-off-by: Nisarg Jhaveri --- libraries/dbi/DBIDummy.class.php | 27 +++++- test/classes/PMA_Footer_test.php | 24 ++++++ test/classes/PMA_Util_test.php | 24 ++++++ .../navigation/PMA_Node_Database_test.php | 86 +++++++++++++++++++ 4 files changed, 160 insertions(+), 1 deletion(-) diff --git a/libraries/dbi/DBIDummy.class.php b/libraries/dbi/DBIDummy.class.php index f179dee016..10323afe6d 100644 --- a/libraries/dbi/DBIDummy.class.php +++ b/libraries/dbi/DBIDummy.class.php @@ -127,7 +127,9 @@ $GLOBALS['dummy_queries'] = array( ), array( 'query' => 'SHOW SESSION VARIABLES LIKE \'FOREIGN_KEY_CHECKS\';', - 'result' => array('foreign_key_checks', 'ON'), + 'result' => array( + array('foreign_key_checks', 'ON') + ), ), array( 'query' => 'SHOW TABLES FROM `pma_test`;', @@ -535,6 +537,29 @@ $GLOBALS['dummy_queries'] = array( array('Name' => 'partition') ) ), + array( + 'query' => "SHOW FULL TABLES FROM `default` WHERE `Table_type`='BASE TABLE'", + 'result' => array( + array("test1", "BASE TABLE"), + array("test2", "BASE TABLE"), + ) + ), + array( + 'query' => "SHOW FULL TABLES FROM `default` WHERE `Table_type`!='BASE TABLE'", + 'result' => array() + ), + array( + 'query' => "SHOW FUNCTION STATUS WHERE `Db`='default'", + 'result' => array(array("Name" => "testFunction")) + ), + array( + 'query' => "SHOW PROCEDURE STATUS WHERE `Db`='default'", + 'result' => array() + ), + array( + 'query' => "SHOW EVENTS FROM `default`", + 'result' => array() + ) ); /** * Current database. diff --git a/test/classes/PMA_Footer_test.php b/test/classes/PMA_Footer_test.php index 3b64f7314d..a1c83cdbb7 100644 --- a/test/classes/PMA_Footer_test.php +++ b/test/classes/PMA_Footer_test.php @@ -132,6 +132,30 @@ class PMA_Footer_Test extends PHPUnit_Framework_TestCase ); } + /** + * Test for _removeRecursion + * + * @return void + */ + public function testRemoveRecursion() + { + $object = (object) array(); + $object->child = (object) array(); + $object->child->parent = $object; + + $this->_callPrivateFunction( + '_removeRecursion', + array( + &$object + ) + ); + + $this->assertEquals( + '{"child":{"parent":"***RECURSION***"}}', + json_encode($object) + ); + } + /** * Test for _getSelfLink * diff --git a/test/classes/PMA_Util_test.php b/test/classes/PMA_Util_test.php index ee8edbf2f4..23b847e37e 100644 --- a/test/classes/PMA_Util_test.php +++ b/test/classes/PMA_Util_test.php @@ -172,4 +172,28 @@ class PMA_Util_Test extends PHPUnit_Framework_TestCase ); } + public function testIsForeignKeyCheck() + { + $GLOBALS['cfg']['DBG'] = array(); + $GLOBALS['cfg']['DBG']['sql'] = false; + + $GLOBALS['cfg']['DefaultForeignKeyChecks'] = 'enable'; + $this->assertEquals( + true, + PMA_Util::isForeignKeyCheck() + ); + + $GLOBALS['cfg']['DefaultForeignKeyChecks'] = 'disable'; + $this->assertEquals( + false, + PMA_Util::isForeignKeyCheck() + ); + + $GLOBALS['cfg']['DefaultForeignKeyChecks'] = 'default'; + $this->assertEquals( + true, + PMA_Util::isForeignKeyCheck() + ); + } + } diff --git a/test/classes/navigation/PMA_Node_Database_test.php b/test/classes/navigation/PMA_Node_Database_test.php index 834fb1faf0..023be85d62 100644 --- a/test/classes/navigation/PMA_Node_Database_test.php +++ b/test/classes/navigation/PMA_Node_Database_test.php @@ -28,6 +28,10 @@ class Node_Database_Test extends PHPUnit_Framework_TestCase $GLOBALS['server'] = 0; $GLOBALS['cfg']['DefaultTabDatabase'] = 'structure'; $GLOBALS['cfg']['MaxNavigationItems'] = 250; + $GLOBALS['cfg']['Server'] = array(); + $GLOBALS['cfg']['Server']['DisableIS'] = true; + $GLOBALS['cfg']['DBG'] = array(); + $GLOBALS['cfg']['DBG']['sql'] = false; $_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme'); } @@ -49,5 +53,87 @@ class Node_Database_Test extends PHPUnit_Framework_TestCase ); $this->assertContains('database', $parent->classes); } + + /** + * Test for getPresence + * + * @return void + */ + public function testGetPresence() + { + $parent = PMA_NodeFactory::getInstance('Node_Database'); + $this->assertEquals( + 2, + $parent->getPresence('tables') + ); + $this->assertEquals( + 0, + $parent->getPresence('views') + ); + $this->assertEquals( + 1, + $parent->getPresence('functions') + ); + $this->assertEquals( + 0, + $parent->getPresence('procedures') + ); + $this->assertEquals( + 0, + $parent->getPresence('events') + ); + } + + /** + * Test for getData + * + * @return void + */ + public function testGetData() + { + $parent = PMA_NodeFactory::getInstance('Node_Database'); + + $tables = $parent->getData('tables', 0); + $this->assertContains( + 'test1', + $tables + ); + $this->assertContains( + 'test2', + $tables + ); + + $views = $parent->getData('views', 0); + $this->assertEmpty($views); + + $functions = $parent->getData('functions', 0); + $this->assertContains( + 'testFunction', + $functions + ); + $this->assertEquals( + 1, + count($functions) + ); + + $this->assertEmpty($parent->getData('procedures', 0)); + $this->assertEmpty($parent->getData('events', 0)); + } + + /** + * Test for setHiddenCount and getHiddenCount + * + * @return void + */ + public function testHiddenCount() + { + $parent = PMA_NodeFactory::getInstance('Node_Database'); + + $parent->setHiddenCount(3); + $this->assertEquals( + 3, + $parent->getHiddenCount() + ); + } } ?>