/** * 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); }
$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;