Merge pull request #672 from xmujay/UT_database_and_privileges
Ut for server database, privileges and other server pages
This commit is contained in:
commit
1fbc4d0cb3
@ -19,6 +19,7 @@ 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/database_interface.inc.php';
|
||||
|
||||
/**
|
||||
* PMA_ServerBinlog_Test class
|
||||
@ -202,4 +203,65 @@ class PMA_ServerBinlog_Test extends PHPUnit_Framework_TestCase
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getAllLogItemInfo
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testPMAGetAllLogItemInfo()
|
||||
{
|
||||
//Mock DBI
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$fetchAssoc = array(
|
||||
'Info' => 'Info',
|
||||
'Log_name' => 'Log_name',
|
||||
'Pos' => 'Pos',
|
||||
'Event_type' => 'Event_type',
|
||||
'Server_id' => 'Server_id',
|
||||
'Orig_log_pos' => 'Orig_log_pos',
|
||||
'End_log_pos' => 'End_log_pos',
|
||||
);
|
||||
$dbi->expects($this->at(0))->method('fetchAssoc')
|
||||
->will($this->returnValue($fetchAssoc));
|
||||
|
||||
$dbi->expects($this->at(1))->method('fetchAssoc')
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$GLOBALS['cfg']['LimitChars'] = 2;
|
||||
|
||||
$result = array();
|
||||
$dontlimitchars = ";";
|
||||
|
||||
$html = PMA_getAllLogItemInfo($result, $dontlimitchars);
|
||||
$value = $fetchAssoc;
|
||||
$this->assertContains(
|
||||
$value['Log_name'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
$value['Pos'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
$value['Event_type'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
$value['Server_id'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
$value['Orig_log_pos'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
htmlspecialchars($value['Info']),
|
||||
$html
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -245,4 +245,42 @@ class PMA_ServerDatabases_Test extends PHPUnit_Framework_TestCase
|
||||
$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
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,12 +57,22 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase
|
||||
$GLOBALS['cfg']['Server']['pmadb'] = 'pmadb';
|
||||
$GLOBALS['cfg']['Server']['usergroups'] = 'usergroups';
|
||||
$GLOBALS['cfg']['Server']['users'] = 'users';
|
||||
$GLOBALS['cfg']['ActionLinksMode'] = "both";
|
||||
$GLOBALS['cfg']['DefaultTabDatabase'] = 'db_structure.php';
|
||||
$GLOBALS['cfg']['QueryWindowHeight'] = 100;
|
||||
$GLOBALS['cfg']['QueryWindowWidth'] = 100;
|
||||
$GLOBALS['cfg']['PmaAbsoluteUri'] = "PmaAbsoluteUri";
|
||||
$GLOBALS['cfg']['DefaultTabTable'] = "db_structure.php";
|
||||
$GLOBALS['cfg']['NavigationTreeDefaultTabTable'] = "db_structure.php";
|
||||
$GLOBALS['cfg']['Confirm'] = "Confirm";
|
||||
|
||||
$GLOBALS['table'] = "table";
|
||||
$GLOBALS['PMA_PHP_SELF'] = PMA_getenv('PHP_SELF');
|
||||
$GLOBALS['pmaThemeImage'] = 'image';
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['username'] = "pma_username";
|
||||
$GLOBALS['collation_connection'] = "collation_connection";
|
||||
$GLOBALS['text_dir'] = "text_dir";
|
||||
|
||||
//$_POST
|
||||
$_POST['pred_password'] = 'none';
|
||||
@ -70,6 +80,12 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase
|
||||
$_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme');
|
||||
$_SESSION['PMA_Theme'] = new PMA_Theme();
|
||||
|
||||
$pmaconfig = $this->getMockBuilder('PMA_Config')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$GLOBALS['PMA_Config'] = $pmaconfig;
|
||||
|
||||
//Mock DBI
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
@ -294,6 +310,38 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getHtmlForUserGroupDialog
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testPMAGetHtmlForUserGroupDialog()
|
||||
{
|
||||
$username = "pma_username";
|
||||
$is_menuswork = true;
|
||||
$_REQUEST['edit_user_group_dialog'] = "edit_user_group_dialog";
|
||||
$GLOBALS['is_ajax_request'] = false;
|
||||
|
||||
//PMA_getHtmlForUserGroupDialog
|
||||
$html = PMA_getHtmlForUserGroupDialog($username, $is_menuswork);
|
||||
$this->assertContains(
|
||||
'<form class="ajax" id="changeUserGroupForm"',
|
||||
$html
|
||||
);
|
||||
//PMA_URL_getHiddenInputs
|
||||
$params = array('username' => $username);
|
||||
$html_output = PMA_URL_getHiddenInputs($params);
|
||||
$this->assertContains(
|
||||
$html_output,
|
||||
$html
|
||||
);
|
||||
//__('User group')
|
||||
$this->assertContains(
|
||||
__('User group'),
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getHtmlToChooseUserGroup
|
||||
*
|
||||
@ -323,6 +371,118 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getHtmlForDisplayResourceLimits
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testPMAGetHtmlForDisplayResourceLimits()
|
||||
{
|
||||
$row = array(
|
||||
'max_questions' => 'max_questions',
|
||||
'max_updates' => 'max_updates',
|
||||
'max_connections' => 'max_connections',
|
||||
'max_user_connections' => 'max_user_connections',
|
||||
);
|
||||
|
||||
//PMA_getHtmlForDisplayResourceLimits
|
||||
$html = PMA_getHtmlForDisplayResourceLimits($row);
|
||||
$this->assertContains(
|
||||
'<legend>' . __('Resource limits') . '</legend>',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Note: Setting these options to 0 (zero) removes the limit.'),
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'MAX QUERIES PER HOUR',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
$row['max_connections'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
$row['max_updates'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
$row['max_connections'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
$row['max_user_connections'],
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Limits the number of simultaneous connections the user may have.'),
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Limits the number of simultaneous connections the user may have.'),
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getSqlQueryForDisplayPrivTable
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testPMAGetSqlQueryForDisplayPrivTable()
|
||||
{
|
||||
$username = "pma_username";
|
||||
$db = '*';
|
||||
$table = "pma_table";
|
||||
$hostname = "pma_hostname";
|
||||
|
||||
//$db == '*'
|
||||
$ret = PMA_getSqlQueryForDisplayPrivTable(
|
||||
$db, $table, $username, $hostname
|
||||
);
|
||||
$sql = "SELECT * FROM `mysql`.`user`"
|
||||
." WHERE `User` = '" . PMA_Util::sqlAddSlashes($username) . "'"
|
||||
." AND `Host` = '" . PMA_Util::sqlAddSlashes($hostname) . "';";
|
||||
$this->assertEquals(
|
||||
$sql,
|
||||
$ret
|
||||
);
|
||||
|
||||
//$table == '*'
|
||||
$db = "pma_db";
|
||||
$table = "*";
|
||||
$ret = PMA_getSqlQueryForDisplayPrivTable(
|
||||
$db, $table, $username, $hostname
|
||||
);
|
||||
$sql = "SELECT * FROM `mysql`.`db`"
|
||||
." WHERE `User` = '" . PMA_Util::sqlAddSlashes($username) . "'"
|
||||
." AND `Host` = '" . PMA_Util::sqlAddSlashes($hostname) . "'"
|
||||
." AND '" . PMA_Util::unescapeMysqlWildcards($db) . "'"
|
||||
." LIKE `Db`;";
|
||||
$this->assertEquals(
|
||||
$sql,
|
||||
$ret
|
||||
);
|
||||
|
||||
//$table == 'pma_table'
|
||||
$db = "pma_db";
|
||||
$table = "pma_table";
|
||||
$ret = PMA_getSqlQueryForDisplayPrivTable(
|
||||
$db, $table, $username, $hostname
|
||||
);
|
||||
$sql = "SELECT `Table_priv`"
|
||||
." FROM `mysql`.`tables_priv`"
|
||||
." WHERE `User` = '" . PMA_Util::sqlAddSlashes($username) . "'"
|
||||
." AND `Host` = '" . PMA_Util::sqlAddSlashes($hostname) . "'"
|
||||
." AND `Db` = '" . PMA_Util::unescapeMysqlWildcards($db) . "'"
|
||||
." AND `Table_name` = '" . PMA_Util::sqlAddSlashes($table) . "';";
|
||||
$this->assertEquals(
|
||||
$sql,
|
||||
$ret
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getDataForChangeOrCopyUser
|
||||
*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user