305 lines
9.9 KiB
PHP
305 lines
9.9 KiB
PHP
<?php
|
|
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
|
/**
|
|
* tests for build_html_for_db.lib.php
|
|
*
|
|
* @package PhpMyAdmin-test
|
|
*/
|
|
|
|
/*
|
|
* Include to test.
|
|
*/
|
|
|
|
$GLOBALS['server'] = 0;
|
|
require_once 'libraries/Util.class.php';
|
|
require_once 'libraries/php-gettext/gettext.inc';
|
|
require_once 'libraries/build_html_for_db.lib.php';
|
|
require_once 'libraries/js_escape.lib.php';
|
|
require_once 'libraries/Theme.class.php';
|
|
require_once 'libraries/database_interface.inc.php';
|
|
require_once 'libraries/Tracker.class.php';
|
|
require_once 'libraries/Types.class.php';
|
|
require_once 'libraries/mysql_charsets.inc.php';
|
|
|
|
class PMA_BuildHtmlForDb_Test extends PHPUnit_Framework_TestCase
|
|
{
|
|
/**
|
|
* Prepares environment for the test.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function setUp()
|
|
{
|
|
global $cfg;
|
|
|
|
$cfg['ShowFunctionFields'] = false;
|
|
$GLOBALS['server'] = 0;
|
|
$cfg['ServerDefault'] = 1;
|
|
|
|
$GLOBALS['PMA_Types'] = new PMA_Types_MySQL();
|
|
$_SESSION['PMA_Theme'] = new PMA_Theme();
|
|
$GLOBALS['cfg']['ActionLinksMode'] = 'icons';
|
|
|
|
$GLOBALS['pmaThemePath'] = $_SESSION['PMA_Theme']->getPath();
|
|
$GLOBALS['pmaThemeImage'] = 'theme/';
|
|
|
|
|
|
$GLOBALS['cfg']['DefaultTabDatabase'] = 'db_structure.php';
|
|
}
|
|
|
|
/**
|
|
* Test for PMA_getColumnOrder
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testGetColumnOrder()
|
|
{
|
|
$this->assertEquals(
|
|
array(
|
|
'DEFAULT_COLLATION_NAME' => array(
|
|
'disp_name' => __('Collation'),
|
|
'description_function' => 'PMA_getCollationDescr',
|
|
'format' => 'string',
|
|
'footer' => 'utf8_general_ci'
|
|
),
|
|
'SCHEMA_TABLES' => array(
|
|
'disp_name' => __('Tables'),
|
|
'format' => 'number',
|
|
'footer' => 0
|
|
),
|
|
'SCHEMA_TABLE_ROWS' => array(
|
|
'disp_name' => __('Rows'),
|
|
'format' => 'number',
|
|
'footer' => 0
|
|
),
|
|
'SCHEMA_DATA_LENGTH' => array(
|
|
'disp_name' => __('Data'),
|
|
'format' => 'byte',
|
|
'footer' => 0
|
|
),
|
|
'SCHEMA_INDEX_LENGTH' => array(
|
|
'disp_name' => __('Indexes'),
|
|
'format' => 'byte',
|
|
'footer' => 0
|
|
),
|
|
'SCHEMA_LENGTH' => array(
|
|
'disp_name' => __('Total'),
|
|
'format' => 'byte',
|
|
'footer' => 0
|
|
),
|
|
'SCHEMA_DATA_FREE' => array(
|
|
'disp_name' => __('Overhead'),
|
|
'format' => 'byte',
|
|
'footer' => 0
|
|
)
|
|
),
|
|
PMA_getColumnOrder()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* 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]
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Data for testBuildHtmlForDb
|
|
*
|
|
* @return array data for testBuildHtmlForDb test case
|
|
*/
|
|
public function providerForTestBuildHtmlForDb()
|
|
{
|
|
return array(
|
|
array(
|
|
array('SCHEMA_NAME' => 'pma'),
|
|
true,
|
|
'target=main.php',
|
|
PMA_getColumnOrder(),
|
|
array(
|
|
'SCHEMA_NAME' => 'pma',
|
|
),
|
|
array(
|
|
'pma' => array(
|
|
'status' => 'true',
|
|
'Ignore_DB' => array(
|
|
'pma' => 'pma'
|
|
),
|
|
)
|
|
),
|
|
array(
|
|
array(
|
|
'tag' => 'td',
|
|
'attributes' => array(
|
|
'class' => 'tool'
|
|
),
|
|
'child' => array(
|
|
'tag' => 'input',
|
|
'attributes' => array(
|
|
'type' => 'checkbox',
|
|
'name' => 'selected_dbs[]',
|
|
'value' => 'pma'
|
|
)
|
|
)
|
|
),
|
|
array(
|
|
'tag' => 'td',
|
|
'attributes' => array(
|
|
'class' => 'name'
|
|
),
|
|
'child' => array(
|
|
'tag' => 'a',
|
|
'attributes' => array(
|
|
'title' => 'Jump to database'
|
|
),
|
|
'content' => 'pma'
|
|
)
|
|
),
|
|
array(
|
|
'tag' => 'td',
|
|
'attributes' => array(
|
|
'class' => 'tool'
|
|
),
|
|
'descendant' => array(
|
|
'tag' => 'img',
|
|
'attributes' => array(
|
|
'title' => 'Not replicated'
|
|
)
|
|
)
|
|
),
|
|
array(
|
|
'tag' => 'td',
|
|
'attributes' => array(
|
|
'class' => 'tool'
|
|
),
|
|
'child' => array(
|
|
'tag' => 'a',
|
|
'child' => array(
|
|
'tag' => 'span',
|
|
'child' => array(
|
|
'tag' => 'img',
|
|
'attributes' => array(
|
|
'title' => 'Check Privileges'
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
),
|
|
array(
|
|
array('SCHEMA_NAME' => 'sakila'),
|
|
true,
|
|
'target=main.php',
|
|
PMA_getColumnOrder(),
|
|
array(
|
|
'SCHEMA_NAME' => 'sakila',
|
|
),
|
|
array(
|
|
'sakila' => array(
|
|
'status' => 'true',
|
|
'Ignore_DB' => array(
|
|
'pma' => 'pma'
|
|
),
|
|
'Do_DB' => array(
|
|
'sakila' => 'sakila'
|
|
)
|
|
)
|
|
),
|
|
array(
|
|
array(
|
|
'tag' => 'td',
|
|
'attributes' => array(
|
|
'class' => 'tool'
|
|
),
|
|
'child' => array(
|
|
'tag' => 'input',
|
|
'attributes' => array(
|
|
'type' => 'checkbox',
|
|
'name' => 'selected_dbs[]',
|
|
'value' => 'sakila'
|
|
)
|
|
)
|
|
),
|
|
array(
|
|
'tag' => 'td',
|
|
'attributes' => array(
|
|
'class' => 'tool'
|
|
),
|
|
'descendant' => array(
|
|
'tag' => 'img',
|
|
'attributes' => array(
|
|
'title' => 'Replicated'
|
|
)
|
|
)
|
|
),
|
|
)
|
|
),
|
|
array(
|
|
array('SCHEMA_NAME' => 'INFORMATION_SCHEMA'),
|
|
true,
|
|
'target=main.php',
|
|
PMA_getColumnOrder(),
|
|
array(
|
|
'SCHEMA_NAME' => 'INFORMATION_SCHEMA',
|
|
),
|
|
array(
|
|
'INFORMATION_SCHEMA' => array(
|
|
'status' => 'false',
|
|
'Ignore_DB' => array(
|
|
'INFORMATION_SCHEMA' => 'INFORMATION_SCHEMA'
|
|
)
|
|
)
|
|
),
|
|
array(
|
|
array(
|
|
'tag' => 'td',
|
|
'attributes' => array(
|
|
'class' => 'tool'
|
|
),
|
|
'child' => array(
|
|
'tag' => 'input',
|
|
'attributes' => array(
|
|
'type' => 'checkbox',
|
|
'name' => 'selected_dbs[]',
|
|
'value' => 'INFORMATION_SCHEMA',
|
|
'disabled' => 'disabled'
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
);
|
|
}
|
|
}
|