diff --git a/libraries/controllers/server/ServerCollationsController.php b/libraries/controllers/server/ServerCollationsController.php
new file mode 100644
index 0000000000..09b23f0a71
--- /dev/null
+++ b/libraries/controllers/server/ServerCollationsController.php
@@ -0,0 +1,74 @@
+response->addHTML(PMA_getHtmlForSubPageHeader('collations'));
+ $this->response->addHTML(
+ $this->_getHtmlForCharsets(
+ $GLOBALS['mysql_charsets'],
+ $GLOBALS['mysql_collations'],
+ $GLOBALS['mysql_charsets_descriptions'],
+ $GLOBALS['mysql_default_collations'],
+ $GLOBALS['mysql_collations_available']
+ )
+ );
+ }
+
+ /**
+ * Returns the html for server Character Sets and Collations.
+ *
+ * @param array $mysqlCharsets Mysql Charsets list
+ * @param array $mysqlCollations Mysql Collations list
+ * @param array $mysqlCharsetsDesc Charsets descriptions
+ * @param array $mysqlDftCollations Default Collations list
+ * @param array $mysqlCollAvailable Available Collations list
+ *
+ * @return string
+ */
+ function _getHtmlForCharsets($mysqlCharsets, $mysqlCollations,
+ $mysqlCharsetsDesc, $mysqlDftCollations, $mysqlCollAvailable
+ ) {
+ return Template::get('server/collations/charsets')->render(
+ array(
+ 'mysqlCharsets' => $mysqlCharsets,
+ 'mysqlCollations' => $mysqlCollations,
+ 'mysqlCharsetsDesc' => $mysqlCharsetsDesc,
+ 'mysqlDftCollations' => $mysqlDftCollations,
+ 'mysqlCollAvailable' => $mysqlCollAvailable,
+ )
+ );
+ }
+}
diff --git a/libraries/server_collations.lib.php b/libraries/server_collations.lib.php
deleted file mode 100644
index a3bfabbb33..0000000000
--- a/libraries/server_collations.lib.php
+++ /dev/null
@@ -1,99 +0,0 @@
-' . "\n"
- . '
' . "\n"
- . '' . "\n"
- . ' | ' . __('Description') . ' | ' . "\n"
- . '
' . "\n";
-
- $table_row_count = count($mysqlCharsets) + count($mysqlCollations);
-
- foreach ($mysqlCharsets as $current_charset) {
-
- $html .= '| ' . "\n"
- . ' ' . htmlspecialchars($current_charset) . "\n"
- . (empty($mysqlCharsetsDesc[$current_charset])
- ? ''
- : ' (' . htmlspecialchars(
- $mysqlCharsetsDesc[$current_charset]
- ) . ')' . "\n")
- . ' | ' . "\n"
- . '
' . "\n";
-
- $html .= PMA_getHtmlForCollationCurrentCharset(
- $current_charset,
- $mysqlCollations,
- $mysqlDftCollations,
- $mysqlCollAvailable
- );
-
- }
- unset($table_row_count);
- $html .= '
' . "\n"
- . '' . "\n";
-
- return $html;
-}
-
-/**
- * Returns the html for Collations of Current Charset.
- *
- * @param String $currCharset Current Charset
- * @param Array $mysqlColl Collations list
- * @param Array $mysqlDefaultColl Default Collations list
- * @param Array $mysqlCollAvailable Available Collations list
- *
- * @return string
- */
-function PMA_getHtmlForCollationCurrentCharset(
- $currCharset, $mysqlColl,
- $mysqlDefaultColl, $mysqlCollAvailable
-) {
- $odd_row = true;
- $html = '';
- foreach ($mysqlColl[$currCharset] as $current_collation) {
-
- $html .= '' . "\n"
- . ' | ' . htmlspecialchars($current_collation) . ' | ' . "\n"
- . ' ' . PMA_getCollationDescr($current_collation) . ' | ' . "\n"
- . '
' . "\n";
- $odd_row = !$odd_row;
- }
- return $html;
-}
diff --git a/server_collations.php b/server_collations.php
index a44d5fbe42..adbd9536a4 100644
--- a/server_collations.php
+++ b/server_collations.php
@@ -1,37 +1,32 @@
addHTML(PMA_getHtmlForSubPageHeader('collations'));
-$response->addHTML(
- PMA_getHtmlForCharsets(
- $mysql_charsets,
- $mysql_collations,
- $mysql_charsets_descriptions,
- $mysql_default_collations,
- $mysql_collations_available
- )
+$container = libraries\di\Container::getDefaultContainer();
+$container->factory(
+ 'PMA\libraries\controllers\server\ServerCollationsController'
);
+$container->alias(
+ 'ServerCollationsController',
+ 'PMA\libraries\controllers\server\ServerCollationsController'
+);
+$container->set('PMA\libraries\Response', Response::getInstance());
+$container->alias('response', 'PMA\libraries\Response');
+
+/** @var ServerCollationsController $controller */
+$controller = $container->get(
+ 'ServerCollationsController', array()
+);
+$controller->indexAction();
diff --git a/templates/server/collations/charsets.phtml b/templates/server/collations/charsets.phtml
new file mode 100644
index 0000000000..9248fb931f
--- /dev/null
+++ b/templates/server/collations/charsets.phtml
@@ -0,0 +1,30 @@
+
+
+
+
+ |
+
+
+
+ |
+
+
+ ()
+
+ |
+
+
+
+
+ |
+ |
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/libraries/PMA_server_collations_test.php b/test/classes/controllers/ServerCollationsControllerTest.php
similarity index 88%
rename from test/libraries/PMA_server_collations_test.php
rename to test/classes/controllers/ServerCollationsControllerTest.php
index 1510258f44..a3442d3dd4 100644
--- a/test/libraries/PMA_server_collations_test.php
+++ b/test/classes/controllers/ServerCollationsControllerTest.php
@@ -1,7 +1,7 @@
true,
);
- //Mock DBI
- $dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface')
- ->disableOriginalConstructor()
- ->getMock();
+ $class = new ReflectionClass('\PMA\libraries\controllers\server\ServerCollationsController');
+ $method = $class->getMethod('_getHtmlForCharsets');
+ $method->setAccessible(true);
- $GLOBALS['dbi'] = $dbi;
-
- //Call the test function
- $html = PMA_getHtmlForCharsets(
+ $ctrl = new ServerCollationsController();
+ $html = $html = $method->invoke(
+ $ctrl,
$mysql_charsets,
$mysql_collations,
$mysql_charsets_descriptions,
diff --git a/test/libraries/PMA_relation_test.php b/test/libraries/PMA_relation_test.php
index 2d25a4de83..2d43fae6e7 100644
--- a/test/libraries/PMA_relation_test.php
+++ b/test/libraries/PMA_relation_test.php
@@ -36,6 +36,7 @@ class PMA_Relation_Test extends PHPUnit_Framework_TestCase
public function setUp()
{
$GLOBALS['server'] = 1;
+ $GLOBALS['db'] = 'db';
$GLOBALS['cfg']['Server']['user'] = 'root';
$GLOBALS['cfg']['Server']['pmadb'] = 'phpmyadmin';
$GLOBALS['cfg']['ZeroConf'] = true;
diff --git a/test/libraries/PMA_tbl_tracking_test.php b/test/libraries/PMA_tbl_tracking_test.php
index 2ed3b57aff..adb07e80d9 100644
--- a/test/libraries/PMA_tbl_tracking_test.php
+++ b/test/libraries/PMA_tbl_tracking_test.php
@@ -9,6 +9,8 @@
/*
* Include to test.
*/
+use PMA\libraries\Theme;
+
require_once 'libraries/tracking.lib.php';
require_once 'libraries/database_interface.inc.php';
@@ -55,6 +57,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
'tracking' => 'tracking',
'trackingwork' => true
);
+ $_SESSION['PMA_Theme'] = new Theme();
$GLOBALS['cfg']['Server']['tracking_default_statements'] = 'DELETE';