Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Unit test for server view refactor: PMA_server_collations and PMA_server_plugins #480

Merged
merged 3 commits into from

2 participants

@xmujay

No description provided.

@xmujay

Hi Marc, this pull request will cover the Unit test for server view refactor: PMA_server_collations and PMA_server_plugins

@lem9 lem9 was assigned
@lem9
Owner

Good job.

@lem9 lem9 merged commit 293f0a6 into phpmyadmin:master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
View
159 test/libraries/PMA_server_collations_test.php
@@ -0,0 +1,159 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for server_collations.lib.php
+ *
+ * @package PhpMyAdmin-test
+ */
+
+/*
+ * Include to test.
+ */
+//$GLOBALS
+$GLOBALS['server'] = 1;
+$GLOBALS['is_superuser'] = false;
+$GLOBALS['cfg']['ServerDefault'] = 1;
+$GLOBALS['url_query'] = "url_query";
+$GLOBALS['PMA_PHP_SELF'] = PMA_getenv('PHP_SELF');
+$GLOBALS['lang'] = "en";
+$GLOBALS['available_languages']= array(
+ "en" => 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(
+ '<div id="div_mysql_charset_collations">',
+ $html
+ );
+ $this->assertContains(
+ __('Collation'),
+ $html
+ );
+ $this->assertContains(
+ __('Description'),
+ $html
+ );
+ //validate 2: Charset Item
+ $this->assertContains(
+ '<i>PMA_armscii8_general_ci</i>',
+ $html
+ );
+ $this->assertContains(
+ '<td>armscii8</td>',
+ $html
+ );
+ $this->assertContains(
+ '<i>PMA_ascii_general_ci</i>',
+ $html
+ );
+ $this->assertContains(
+ '<td>ascii</td>',
+ $html
+ );
+ $this->assertContains(
+ '<i>PMA_big5_general_ci</i>',
+ $html
+ );
+ $this->assertContains(
+ '<td>big5</td>',
+ $html
+ );
+ }
+}
View
162 test/libraries/PMA_server_plugins_test.php
@@ -0,0 +1,162 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for server_plugins.lib.php
+ *
+ * @package PhpMyAdmin-test
+ */
+
+/*
+ * Include to test.
+ */
+require_once 'libraries/Util.class.php';
+require_once 'libraries/php-gettext/gettext.inc';
+require_once 'libraries/url_generating.lib.php';
+require_once 'libraries/server_plugins.lib.php';
+require_once 'libraries/Theme.class.php';
+require_once 'libraries/database_interface.inc.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';
+
+class PMA_ServerPlugins_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['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['cfg']['DBG']['sql'] = false;
+
+ $GLOBALS['table'] = "table";
+ $GLOBALS['pmaThemeImage'] = 'image';
+
+ //$_SESSION
+ $_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme');
+ $_SESSION['PMA_Theme'] = new PMA_Theme();
+ }
+
+ /**
+ * Test for PMA_getPluginAndModuleInfo
+ *
+ * @return void
+ */
+ public function testPMA_getPluginAndModuleInfo()
+ {
+ //Mock DBI
+ $dbi = $this->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(
+ '<a href="#plugins_plugins">Plugins</a>',
+ $html
+ );
+ //validate 2: PMA_getModuleTab
+ $this->assertContains(
+ '<a href="#plugins_modules">Modules</a>',
+ $html
+ );
+ //validate 3:Items
+ $this->assertContains(
+ '<th>Plugin</th>',
+ $html
+ );
+ $this->assertContains(
+ '<th>Module</th>',
+ $html
+ );
+ $this->assertContains(
+ '<th>Plugin</th>',
+ $html
+ );
+ $this->assertContains(
+ '<th>Library</th>',
+ $html
+ );
+ $this->assertContains(
+ '<th>Plugin</th>',
+ $html
+ );
+ $this->assertContains(
+ '<th>Version</th>',
+ $html
+ );
+ $this->assertContains(
+ '<th>Author</th>',
+ $html
+ );
+ $this->assertContains(
+ '<th>License</th>',
+ $html
+ );
+
+ //validate 4: one Item HTML
+ $this->assertContains(
+ '<th>plugin_name1</th>',
+ $html
+ );
+ $this->assertContains(
+ '<td>module_library1</td>',
+ $html
+ );
+ $this->assertContains(
+ '<td>module_version1</td>',
+ $html
+ );
+ $this->assertContains(
+ '<td>module_description1</td>',
+ $html
+ );
+ $this->assertContains(
+ '<td>module_author1</td>',
+ $html
+ );
+ }
+}
Something went wrong with that request. Please try again.