diff --git a/test/libraries/PMA_server_collations_test.php b/test/libraries/PMA_server_collations_test.php new file mode 100644 index 0000000000..d9b03377b6 --- /dev/null +++ b/test/libraries/PMA_server_collations_test.php @@ -0,0 +1,159 @@ + array("English", "US-ENGLISH"), + "ch" => array("Chinese", "TW-Chinese") +); +$GLOBALS['text_dir'] = "text_dir"; +$GLOBALS['cfg']['DBG']['sql'] = false; +//$_SESSION +require_once 'libraries/Theme.class.php'; +$_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme'); + +require_once 'libraries/Util.class.php'; +require_once 'libraries/php-gettext/gettext.inc'; +require_once 'libraries/url_generating.lib.php'; +require_once 'libraries/Tracker.class.php'; +require_once 'libraries/Message.class.php'; +require_once 'libraries/sanitizing.lib.php'; +require_once 'libraries/sqlparser.lib.php'; +require_once 'libraries/js_escape.lib.php'; +require_once 'libraries/database_interface.inc.php'; +require_once 'libraries/server_common.inc.php'; +require_once 'libraries/mysql_charsets.inc.php'; +require_once 'libraries/server_collations.lib.php'; + +class PMA_ServerCollations_Test extends PHPUnit_Framework_TestCase +{ + /** + * Prepares environment for the test. + * + * @return void + */ + public function setUp() + { + //$_REQUEST + $_REQUEST['log'] = "index1"; + $_REQUEST['pos'] = 3; + + //$GLOBALS + $GLOBALS['cfg']['MaxRows'] = 10; + $GLOBALS['is_ajax_request'] = true; + $GLOBALS['cfg']['ServerDefault'] = "server"; + $GLOBALS['cfg']['RememberSorting'] = true; + $GLOBALS['cfg']['SQP'] = array(); + $GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 1000; + $GLOBALS['cfg']['ShowSQL'] = true; + $GLOBALS['cfg']['SQP']['fmtType'] = 'none'; + $GLOBALS['cfg']['TableNavigationLinksMode'] = 'icons'; + $GLOBALS['cfg']['LimitChars'] = 100; + + $GLOBALS['table'] = "table"; + $GLOBALS['pmaThemeImage'] = 'image'; + } + + /** + * Test for PMA_getHtmlForCharsets + * + * @return void + */ + public function testPMA_getHtmlForCharsets() + { + $mysql_charsets = array("armscii8", "ascii", "big5", "binary"); + $mysql_collations = array( + "armscii8" => array("armscii8"), + "ascii" => array("ascii"), + "big5" => array("big5"), + "binary" => array("binary"), + ); + $mysql_charsets_descriptions = array( + "armscii8" => "PMA_armscii8_general_ci", + "ascii" => "PMA_ascii_general_ci", + "big5" => "PMA_big5_general_ci", + "binary" => "PMA_binary_general_ci", + ); + $mysql_default_collations = array( + "armscii8" => "armscii8", + "ascii" => "ascii", + "big5" => "big5", + "binary" => "binary", + ); + $mysql_collations_available = array( + "armscii8" => true, + "ascii" => true, + "big5" => true, + "binary" => true, + ); + + //Mock DBI + $dbi = $this->getMockBuilder('PMA_DatabaseInterface') + ->disableOriginalConstructor() + ->getMock(); + + $GLOBALS['dbi'] = $dbi; + + //Call the test function + $html = PMA_getHtmlForCharsets( + $mysql_charsets, + $mysql_collations, + $mysql_charsets_descriptions, + $mysql_default_collations, + $mysql_collations_available + ); + + //validate 1: Charset HTML + $this->assertContains( + '
', + $html + ); + $this->assertContains( + __('Collation'), + $html + ); + $this->assertContains( + __('Description'), + $html + ); + //validate 2: Charset Item + $this->assertContains( + 'PMA_armscii8_general_ci', + $html + ); + $this->assertContains( + 'armscii8', + $html + ); + $this->assertContains( + 'PMA_ascii_general_ci', + $html + ); + $this->assertContains( + 'ascii', + $html + ); + $this->assertContains( + 'PMA_big5_general_ci', + $html + ); + $this->assertContains( + 'big5', + $html + ); + } +} diff --git a/test/libraries/PMA_server_plugins_test.php b/test/libraries/PMA_server_plugins_test.php new file mode 100644 index 0000000000..375edbe4d4 --- /dev/null +++ b/test/libraries/PMA_server_plugins_test.php @@ -0,0 +1,162 @@ +getMockBuilder('PMA_DatabaseInterface') + ->disableOriginalConstructor() + ->getMock(); + + $GLOBALS['dbi'] = $dbi; + + //Call the test function + /** + * Prepare plugin list + */ + + $plugins = array(); + $modules = array(); + + $row = array(); + $row["plugin_name"] = "plugin_name1"; + $row["plugin_type"] = "plugin_type1"; + $row["module_name"] = "module_name1"; + $row["module_library"] = "module_library1"; + $row["module_version"] = "module_version1"; + $row["module_author"] = "module_author1"; + $row["module_license"] = "module_license1"; + $row["module_description"] = "module_description1"; + $row["is_active"] = true; + $plugins[$row['plugin_type']][] = $row; + $modules[$row['module_name']]['info'] = $row; + $modules[$row['module_name']]['plugins'][$row['plugin_type']][] = $row; + + $html = PMA_getPluginAndModuleInfo($plugins, $modules); + + + + //validate 1: PMA_getPluginTab + $this->assertContains( + 'Plugins', + $html + ); + //validate 2: PMA_getModuleTab + $this->assertContains( + 'Modules', + $html + ); + //validate 3:Items + $this->assertContains( + 'Plugin', + $html + ); + $this->assertContains( + 'Module', + $html + ); + $this->assertContains( + 'Plugin', + $html + ); + $this->assertContains( + 'Library', + $html + ); + $this->assertContains( + 'Plugin', + $html + ); + $this->assertContains( + 'Version', + $html + ); + $this->assertContains( + 'Author', + $html + ); + $this->assertContains( + 'License', + $html + ); + + //validate 4: one Item HTML + $this->assertContains( + 'plugin_name1', + $html + ); + $this->assertContains( + 'module_library1', + $html + ); + $this->assertContains( + 'module_version1', + $html + ); + $this->assertContains( + 'module_description1', + $html + ); + $this->assertContains( + 'module_author1', + $html + ); + } +}