Viewing file: PMA_server_databases_test.php (8.15 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * tests for server_databases.lib.php * * @package PhpMyAdmin-test */
/* * Include to test. */ 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/url_generating.lib.php'; require_once 'libraries/server_databases.lib.php'; require_once 'libraries/mysql_charsets.lib.php'; require_once 'libraries/Theme.class.php'; require_once 'libraries/database_interface.inc.php'; require_once 'libraries/Message.class.php'; require_once 'libraries/sanitizing.lib.php'; require_once 'libraries/sqlparser.lib.php'; require_once 'libraries/js_escape.lib.php'; require_once 'libraries/Config.class.php'; require_once 'libraries/config.default.php';
/** * PMA_ServerDatabases_Test class * * this class is for testing server_databases.lib.php functions * * @package PhpMyAdmin-test */
class PMA_ServerDatabases_Test extends PHPUnit_Framework_TestCase { /** * Prepares environment for the test. * * @return void */ public function setUp() { //$_REQUEST $_REQUEST['log'] = "index1"; $_REQUEST['pos'] = 3;
//$GLOBALS $GLOBALS['PMA_Config'] = new PMA_Config(); $GLOBALS['PMA_Config']->enableBc(); $GLOBALS['cfg']['MaxRows'] = 10; $GLOBALS['cfg']['MaxDbList'] = 100; $GLOBALS['cfg']['ServerDefault'] = "server"; $GLOBALS['cfg']['RememberSorting'] = true; $GLOBALS['cfg']['SQP'] = array(); $GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 1000; $GLOBALS['cfg']['ShowSQL'] = true; $GLOBALS['cfg']['TableNavigationLinksMode'] = 'icons'; $GLOBALS['cfg']['LimitChars'] = 100; $GLOBALS['cfg']['DBG']['sql'] = false; $GLOBALS['cfg']['ActionLinksMode'] = "both"; $GLOBALS['cfg']['DefaultTabDatabase'] = 'db_structure.php';
$GLOBALS['table'] = "table"; $GLOBALS['replication_info']['master']['status'] = false; $GLOBALS['replication_info']['slave']['status'] = false; $GLOBALS['pmaThemeImage'] = 'image'; $GLOBALS['text_dir'] = "text_dir";
//$_SESSION $_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme'); $_SESSION['PMA_Theme'] = new PMA_Theme();
}
/** * Test for PMA_getHtmlForDatabase * * @return void * @group medium */ public function testPMAGetHtmlForDatabase() { //Mock DBI $dbi = $this->getMockBuilder('PMA_DatabaseInterface') ->disableOriginalConstructor() ->getMock();
$GLOBALS['dbi'] = $dbi;
//Call the test function $databases = array( array("SCHEMA_NAME" => "pma_bookmark"), array("SCHEMA_NAME" => "information_schema"), array("SCHEMA_NAME" => "mysql"), array("SCHEMA_NAME" => "performance_schema"), array("SCHEMA_NAME" => "phpmyadmin") );
$databases_count = 5; $pos = 0; $dbstats = 0; $sort_by = "SCHEMA_NAME"; $sort_order = "asc"; $is_superuser = true; $cfg = array( "AllowUserDropDatabase" => false, "ActionLinksMode" => "both", ); $replication_types = array("master", "slave"); $replication_info = array( "master" => array( "status" => true, "Ignore_DB" => array("DB" => "Ignore_DB"), "Do_DB" => array(""), ), "slave" => array( "status" => false, "Ignore_DB" => array("DB" => "Ignore_DB"), "Do_DB" => array(""), ), ); $url_query = "token=27ae04f0b003a84e5c2796182f361ff1";
$html = PMA_getHtmlForDatabase( $databases, $databases_count, $pos, $dbstats, $sort_by, $sort_order, $is_superuser, $cfg, $replication_types, $replication_info, $url_query );
//validate 1: General info $this->assertContains( '<div id="tableslistcontainer">', $html );
//validate 2:ajax Form $this->assertContains( '<form class="ajax" action="server_databases.php" ', $html );
$this->assertContains( '<table id="tabledatabases" class="data">', $html );
//validate 3: PMA_getHtmlForColumnOrderWithSort $this->assertContains( '<a href="server_databases.php?pos=0', $html ); $this->assertContains( 'sort_by=SCHEMA_NAME', $html );
//validate 4: PMA_getHtmlAndColumnOrderForDatabaseList $this->assertContains( 'title="pma_bookmark" value="pma_bookmark"', $html ); $this->assertContains( 'title="information_schema" value="information_schema"', $html ); $this->assertContains( 'title="performance_schema" value="performance_schema"', $html ); $this->assertContains( 'title="phpmyadmin" value="phpmyadmin"', $html );
//validate 5: PMA_getHtmlForTableFooter $this->assertContains( 'Total: <span id="databases_count">5</span>', $html );
//validate 6: PMA_getHtmlForTableFooterButtons $this->assertContains( 'Check All', $html );
//validate 7: PMA_getHtmlForNoticeEnableStatistics $this->assertContains( 'Note: Enabling the database statistics here might cause heavy traffic', $html ); $this->assertContains( 'Enable Statistics', $html ); }
/** * Test for PMA_getListForSortDatabase * * @return void */ public function testPMAGetListForSortDatabase() { //$_REQUEST['sort_by'] and $_REQUEST['sort_order'] are empty list($sort_by, $sort_order) = PMA_getListForSortDatabase(); $this->assertEquals( 'SCHEMA_NAME', $sort_by ); $this->assertEquals( 'asc', $sort_order );
// $_REQUEST['sort_by'] = 'DEFAULT_COLLATION_NAME' // and $_REQUEST['sort_order'] is not 'desc' $_REQUEST['sort_by'] = 'DEFAULT_COLLATION_NAME'; $_REQUEST['sort_order'] = 'abc'; list($sort_by, $sort_order) = PMA_getListForSortDatabase(); $this->assertEquals( 'DEFAULT_COLLATION_NAME', $sort_by ); $this->assertEquals( 'asc', $sort_order );
// $_REQUEST['sort_by'] = 'DEFAULT_COLLATION_NAME' // and $_REQUEST['sort_order'] is 'desc' $_REQUEST['sort_by'] = 'DEFAULT_COLLATION_NAME'; $_REQUEST['sort_order'] = 'desc'; list($sort_by, $sort_order) = PMA_getListForSortDatabase(); $this->assertEquals( 'DEFAULT_COLLATION_NAME', $sort_by ); $this->assertEquals( 'desc', $sort_order ); }
/** * Test for PMA_getHtmlForColumnOrder * * @return void */ public function testPMAGetHtmlForColumnOrder() { //Mock DBI $dbi = $this->getMockBuilder('PMA_DatabaseInterface') ->disableOriginalConstructor() ->getMock();
$GLOBALS['dbi'] = $dbi;
$column_order = array( "first_database" => array( 'format' => 'byte', 'footer' => '10333', ) ); $first_database = array( "first_database" => "db1" ); $html = PMA_getHtmlForColumnOrder($column_order, $first_database); $stat = $column_order["first_database" ]; list($value, $unit) = PMA_Util::formatByteDown($stat['footer'], 3, 1); $this->assertContains( $value, $html ); $this->assertContains( $unit, $html );
} }
|