/** * Test for PMA_relationsCleanupColumn * * @return void * @group medium */ public function testPMARelationsCleanupColumn() { $db = "PMA"; $table = "PMA_bookmark"; $column = "name"; $this->redefineRelation(); //the $cfgRelation value before cleanup column $cfgRelation = PMA_checkRelationsParam(); $this->assertEquals(true, $cfgRelation['commwork']); //validate PMA_getDbComments when commwork = true $db_comments = PMA_getDbComments(); $this->assertEquals(array('db_name0' => 'comment0', 'db_name1' => 'comment1'), $db_comments); $this->assertEquals(true, $cfgRelation['displaywork']); //validate PMA_getDisplayField when displaywork = true $display_field = PMA_getDisplayField($db, $table); $this->assertEquals('PMA_display_field', $display_field); $this->assertEquals(true, $cfgRelation['relwork']); $this->assertEquals('column_info', $cfgRelation['column_info']); $this->assertEquals('table_info', $cfgRelation['table_info']); $this->assertEquals('relation', $cfgRelation['relation']); //cleanup PMA_relationsCleanupColumn($db, $table, $column); //the $cfgRelation value after cleanup column $cfgRelation = PMA_checkRelationsParam(); $is_defined_column_info = isset($cfgRelation['column_info']) ? $cfgRelation['column_info'] : null; $is_defined_table_info = isset($cfgRelation['table_info']) ? $cfgRelation['table_info'] : null; $is_defined_relation = isset($cfgRelation['relation']) ? $cfgRelation['relation'] : null; $this->assertEquals(null, $is_defined_column_info); $this->assertEquals(null, $is_defined_table_info); $this->assertEquals(null, $is_defined_relation); }
/** * returns array with dbs grouped with extended infos * * @uses $GLOBALS['PMA_List_Database'] * @uses $GLOBALS['cfgRelation']['commwork'] * @uses $cfg['ShowTooltip'] * @uses $cfg['LeftFrameDBTree'] * @uses $cfg['LeftFrameDBSeparator'] * @uses $cfg['ShowTooltipAliasDB'] * @uses PMA_getTableCount() * @uses PMA_getDbComment() * @uses is_array() * @uses implode() * @uses strstr() * @uses explode() * @param integer $offset * @param integer $count * @return array db list */ public function getGroupedDetails($offset, $count) { $dbgroups = array(); $parts = array(); if ($GLOBALS['cfg']['ShowTooltip'] && $GLOBALS['cfgRelation']['commwork']) { $db_tooltips = PMA_getDbComments(); } if (!$GLOBALS['cfg']['LeftFrameDBTree']) { $separators = array(); } elseif (is_array($GLOBALS['cfg']['LeftFrameDBSeparator'])) { $separators = $GLOBALS['cfg']['LeftFrameDBSeparator']; } elseif (!empty($GLOBALS['cfg']['LeftFrameDBSeparator'])) { $separators = array($GLOBALS['cfg']['LeftFrameDBSeparator']); } else { $separators = array(); } foreach ($this->getLimitedItems($offset, $count) as $key => $db) { // garvin: Get comments from PMA comments table $db_tooltip = ''; if (isset($db_tooltips[$db])) { $db_tooltip = $db_tooltips[$db]; } $pos = false; foreach($separators as $separator) { // use strpos instead of strrpos; it seems more common to // have the db name, the separator, then the rest which // might contain a separator // like dbname_the_rest $pos = strpos($db, $separator); if ($pos !== false) { break; } } if ($pos !== false) { $group = substr($db, 0, $pos); $disp_name_cut = substr($db, $pos); } else { $group = $db; $disp_name_cut = $db; } $disp_name = $db; if ($db_tooltip && $GLOBALS['cfg']['ShowTooltipAliasDB']) { $disp_name = $db_tooltip; $disp_name_cut = $db_tooltip; $db_tooltip = $db; } $dbgroups[$group][$db] = array( 'name' => $db, 'disp_name_cut' => $disp_name_cut, 'disp_name' => $disp_name, 'comment' => $db_tooltip, ); if ($GLOBALS['cfg']['Server']['CountTables']) { $dbgroups[$group][$db]['num_tables'] = PMA_getTableCount($db); } } // end foreach ($GLOBALS['PMA_List_Database']->items as $db) return $dbgroups; }