PMA_VERSION,
'db' => 'pmadb',
'users' => 'users',
'usergroups' => 'usergroups'
);
}
/**
* Tests UserGroups::getHtmlForUserGroupsTable() function when there are no user groups
*
* @return void
* @group medium
*/
public function testGetHtmlForUserGroupsTableWithNoUserGroups()
{
$expectedQuery = "SELECT * FROM `pmadb`.`usergroups`"
. " ORDER BY `usergroup` ASC";
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('tryQuery')
->with($expectedQuery)
->will($this->returnValue(true));
$dbi->expects($this->once())
->method('numRows')
->withAnyParameters()
->will($this->returnValue(0));
$dbi->expects($this->once())
->method('freeResult');
$GLOBALS['dbi'] = $dbi;
$html = UserGroups::getHtmlForUserGroupsTable();
$this->assertNotContains(
'
',
$html
);
$url_tag = 'getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('tryQuery')
->with($expectedQuery)
->will($this->returnValue(true));
$dbi->expects($this->once())
->method('numRows')
->withAnyParameters()
->will($this->returnValue(1));
$dbi->expects($this->at(2))
->method('fetchAssoc')
->withAnyParameters()
->will(
$this->returnValue(
array(
'usergroup' => 'usergroup',
'tab' => 'server_sql',
'allowed' => 'Y'
)
)
);
$dbi->expects($this->at(3))
->method('fetchAssoc')
->withAnyParameters()
->will($this->returnValue(false));
$dbi->expects($this->once())
->method('freeResult');
$GLOBALS['dbi'] = $dbi;
$html = UserGroups::getHtmlForUserGroupsTable();
$this->assertContains(
'| usergroup | ',
$html
);
$url_tag = 'assertContains(
$url_tag,
$html
);
}
/**
* Tests UserGroups::delete() function
*
* @return void
*/
public function testDeleteUserGroup()
{
$userDelQuery = "DELETE FROM `pmadb`.`users`"
. " WHERE `usergroup`='ug'";
$userGrpDelQuery = "DELETE FROM `pmadb`.`usergroups`"
. " WHERE `usergroup`='ug'";
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->at(1))
->method('query')
->with($userDelQuery);
$dbi->expects($this->at(3))
->method('query')
->with($userGrpDelQuery);
$dbi->expects($this->any())
->method('escapeString')
->will($this->returnArgument(0));
$GLOBALS['dbi'] = $dbi;
UserGroups::delete('ug');
}
/**
* Tests UserGroups::getHtmlToEditUserGroup() function
*
* @return void
*/
public function testGetHtmlToEditUserGroup()
{
// adding a user group
$html = UserGroups::getHtmlToEditUserGroup();
$this->assertContains(
'assertContains(
'getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('tryQuery')
->with($expectedQuery)
->will($this->returnValue(true));
$dbi->expects($this->exactly(2))
->method('fetchAssoc')
->willReturnOnConsecutiveCalls(
array(
'usergroup' => 'ug',
'tab' => 'server_sql',
'allowed' => 'Y'
),
false
);
$dbi->expects($this->once())
->method('freeResult');
$dbi->expects($this->any())
->method('escapeString')
->will($this->returnArgument(0));
$GLOBALS['dbi'] = $dbi;
// editing a user group
$html = UserGroups::getHtmlToEditUserGroup('ug');
$this->assertContains(
'assertContains(
'assertContains(
'assertContains(
'',
$html
);
$this->assertContains(
'',
$html
);
}
}