/** * Test for PMA_buildHtmlForDb * * @param array $current Current * @param boolean $is_superuser Is superuser * @param string $url_query URL query * @param array $column_order Column order * @param array $replication_types Replication types * @param array $replication_info Replication info * @param array $tags Tags * * @return void * @dataProvider providerForTestBuildHtmlForDb * * @group medium */ public function testBuildHtmlForDb($current, $is_superuser, $url_query, $column_order, $replication_types, $replication_info, $html_segments) { $result = PMA_buildHtmlForDb($current, $is_superuser, $url_query, $column_order, $replication_types, $replication_info); $this->assertEquals($column_order, $result[0]); foreach ($html_segments as $html_segment) { $this->assertContains($html_segment, $result[1]); } }
/** * Test for PMA_buildHtmlForDb * * @param array $current Current * @param boolean $is_superuser Is superuser * @param string $url_query URL query * @param array $column_order Column order * @param array $replication_types Replication types * @param array $replication_info Replication info * @param array $tags Tags * * @return void * @dataProvider providerForTestBuildHtmlForDb * * @group medium */ public function testBuildHtmlForDb($current, $is_superuser, $url_query, $column_order, $replication_types, $replication_info, $tags) { $result = PMA_buildHtmlForDb($current, $is_superuser, $url_query, $column_order, $replication_types, $replication_info); $this->assertEquals($column_order, $result[0]); foreach ($tags as $value) { $this->assertTag($value, $result[1]); } }
*/ $db_url_params['db'] = $_POST['new_db']; $is_superuser = $GLOBALS['dbi']->isSuperuser(); $column_order = PMA_getColumnOrder(); $url_query = PMA_URL_getCommon(array('db' => $_POST['new_db'])); /** * String that will contain the output HTML * @name $new_db_string */ $new_db_string = '<tr>'; if (empty($db_collation_for_ajax)) { $db_collation_for_ajax = PMA_getServerCollation(); } // $dbstats comes from the create table dialog if (!empty($dbstats)) { $current = array('SCHEMA_NAME' => $_POST['new_db'], 'DEFAULT_COLLATION_NAME' => $db_collation_for_ajax, 'SCHEMA_TABLES' => '0', 'SCHEMA_TABLE_ROWS' => '0', 'SCHEMA_DATA_LENGTH' => '0', 'SCHEMA_MAX_DATA_LENGTH' => '0', 'SCHEMA_INDEX_LENGTH' => '0', 'SCHEMA_LENGTH' => '0', 'SCHEMA_DATA_FREE' => '0'); } else { $current = array('SCHEMA_NAME' => $_POST['new_db'], 'DEFAULT_COLLATION_NAME' => $db_collation_for_ajax); } list($column_order, $generated_html) = PMA_buildHtmlForDb($current, $is_superuser, $url_query, $column_order, $replication_types, $GLOBALS['replication_info']); $new_db_string .= $generated_html; $new_db_string .= '</tr>'; $response = PMA\libraries\Response::getInstance(); $response->addJSON('message', $message); $response->addJSON('new_db_string', $new_db_string); $response->addJSON('sql_query', PMA\libraries\Util::getMessage(null, $sql_query, 'success')); $response->addJSON('url_query', PMA\libraries\Util::getScriptNameForOption($GLOBALS['cfg']['DefaultTabDatabase'], 'database') . $url_query . '&db=' . urlencode($current['SCHEMA_NAME'])); } else { include_once '' . $cfg['DefaultTabDatabase']; } }
/** * Returns the html for Database List and Column order * * @param array $databases GBI return databases * @param bool $is_superuser User status * @param Array $url_query Url query * @param string $column_order column order * @param string $replication_types replication types * @param string $replication_info replication info * * @return Array */ function PMA_getHtmlAndColumnOrderForDatabaseList($databases, $is_superuser, $url_query, $column_order, $replication_types, $replication_info) { $odd_row = true; $html = '<tbody>' . "\n"; foreach ($databases as $current) { $tr_class = $odd_row ? 'odd' : 'even'; if ($GLOBALS['dbi']->isSystemSchema($current['SCHEMA_NAME'], true)) { $tr_class .= ' noclick'; } $html .= '<tr class="' . $tr_class . '">' . "\n"; $odd_row = !$odd_row; list($column_order, $generated_html) = PMA_buildHtmlForDb($current, $is_superuser, $url_query, $column_order, $replication_types, $replication_info); $html .= $generated_html; $html .= '</tr>' . "\n"; } // end foreach ($databases as $key => $current) unset($current, $odd_row); $html .= '</tbody>'; return array($html, $column_order); }
} elseif ($type == "slave") { $name = __('Slave replication'); } if (${"server_{$type}_status"}) { echo ' <th>' . $name . '</th>' . "\n"; } } if ($is_superuser) { echo ' <th>' . ($cfg['PropertiesIconic'] ? '' : __('Action')) . "\n" . ' </th>' . "\n"; } echo '</tr>' . "\n" . '</thead>' . "\n" . '<tbody>' . "\n"; $odd_row = true; foreach ($databases as $current) { echo '<tr class="' . ($odd_row ? 'odd' : 'even') . '">' . "\n"; $odd_row = !$odd_row; list($column_order, $generated_html) = PMA_buildHtmlForDb($current, $is_superuser, isset($checkall) ? $checkall : '', $url_query, $column_order, $replication_types, $replication_info); echo $generated_html; echo '</tr>' . "\n"; } // end foreach ($databases as $key => $current) unset($current, $odd_row); echo '<tr id="db_summary_row">' . "\n"; if ($is_superuser || $cfg['AllowUserDropDatabase']) { echo ' <th></th>' . "\n"; } echo ' <th>' . __('Total') . ': <span id="databases_count">' . $databases_count . '</span></th>' . "\n"; foreach ($column_order as $stat_name => $stat) { if (array_key_exists($stat_name, $first_database)) { if ($stat['format'] === 'byte') { list($value, $unit) = PMA_formatByteDown($stat['footer'], 3, 1); } elseif ($stat['format'] === 'number') {
/** * Test for PMA_buildHtmlForDb * * @param array $current * @param boolean $is_superuser * @param string $checkall * @param string $url_query * @param array $column_order * @param array $replication_types * @param array $replication_info * @param string $output * * @return void * @dataProvider providerForTestBuildHtmlForDb * * @group medium */ public function testBuildHtmlForDb($current, $is_superuser, $checkall, $url_query, $column_order, $replication_types, $replication_info, $output ) { $this->assertEquals( array($column_order, $output), PMA_buildHtmlForDb( $current, $is_superuser, $checkall, $url_query, $column_order, $replication_types, $replication_info ) ); }
/** * Test for PMA_buildHtmlForDb * * @param array $current * @param boolean $is_superuser * @param string $checkall * @param string $url_query * @param array $column_order * @param array $replication_types * @param array $replication_info * @param $output * * @dataProvider providerForTestPMA_buildHtmlForDb * * @group medium */ public function testPMA_buildHtmlForDb($current, $is_superuser, $checkall, $url_query,$column_order, $replication_types, $replication_info, $output){ if (! function_exists('PMA_is_system_schema')) { function PMA_is_system_schema() { return false; } } if (! function_exists('p')) { function p() { return; } } if (! defined('PMA_DRIZZLE')) { define('PMA_DRIZZLE', false); } $GLOBALS['cfg']['PropertiesIconic'] = true; $_SESSION['PMA_Theme'] = new PMA_Theme(); $GLOBALS['pmaThemeImage'] = ''; $this->assertEquals( PMA_buildHtmlForDb($current, $is_superuser, $checkall, $url_query, $column_order, $replication_types, $replication_info), $output ); }