/**
  * Test for PMA_getPluginAndModuleInfo
  *
  * @return void
  */
 public function testPMAGetPluginAndModuleInfo()
 {
     //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);
 }
示例#2
0
$response = PMA_Response::getInstance();
$header = $response->getHeader();
$scripts = $header->getScripts();
$scripts->addFile('jquery/jquery.tablesorter.js');
$scripts->addFile('server_plugins.js');
/**
 * Does the common work
 */
require 'libraries/server_common.inc.php';
require 'libraries/server_plugins.lib.php';
/**
 * Prepare plugin list
 */
$sql = "SELECT p.plugin_name, p.plugin_type, p.is_active, m.module_name,\n        m.module_library, m.module_version, m.module_author,\n        m.module_description, m.module_license\n    FROM data_dictionary.plugins p\n        JOIN data_dictionary.modules m USING (module_name)\n    ORDER BY m.module_name, p.plugin_type, p.plugin_name";
$res = $GLOBALS['dbi']->query($sql);
$plugins = array();
$modules = array();
while ($row = $GLOBALS['dbi']->fetchAssoc($res)) {
    $plugins[$row['plugin_type']][] = $row;
    $modules[$row['module_name']]['info'] = $row;
    $modules[$row['module_name']]['plugins'][$row['plugin_type']][] = $row;
}
$GLOBALS['dbi']->freeResult($res);
// sort plugin list (modules are already sorted)
ksort($plugins);
/**
 * Displays the page
 */
$response->addHTML(PMA_getHtmlForSubPageHeader('plugins'));
$response->addHTML(PMA_getPluginAndModuleInfo($plugins, $modules));
exit;