Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
b94baebc60
@ -118,7 +118,7 @@ class PMA_Navigation
|
||||
$navTable = PMA_Util::backquote($GLOBALS['cfgRelation']['db'])
|
||||
. "." . PMA_Util::backquote($GLOBALS['cfgRelation']['navigationhiding']);
|
||||
$sqlQuery = "DELETE FROM " . $navTable
|
||||
. " WHERE "
|
||||
. " WHERE"
|
||||
. " `username`='"
|
||||
. PMA_Util::sqlAddSlashes($GLOBALS['cfg']['Server']['user']) . "'"
|
||||
. " AND `item_name`='" . PMA_Util::sqlAddSlashes($itemName) . "'"
|
||||
@ -150,7 +150,7 @@ class PMA_Navigation
|
||||
. "." . PMA_Util::backquote($GLOBALS['cfgRelation']['navigationhiding']);
|
||||
$sqlQuery = "SELECT `item_name`, `item_type` FROM " . $navTable
|
||||
. " WHERE `username`='"
|
||||
. PMA_Util::sqlAddSlashes($GLOBALS['cfg']['Server']['user']) ."'"
|
||||
. PMA_Util::sqlAddSlashes($GLOBALS['cfg']['Server']['user']) . "'"
|
||||
. " AND `db_name`='" . PMA_Util::sqlAddSlashes($dbName) . "'"
|
||||
. " AND `table_name`='"
|
||||
. (! empty($tableName) ? PMA_Util::sqlAddSlashes($tableName) : '') . "'";
|
||||
|
||||
150
test/classes/navigation/PMA_Navigation_test.php
Normal file
150
test/classes/navigation/PMA_Navigation_test.php
Normal file
@ -0,0 +1,150 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for PMA_Navigation class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/Util.class.php';
|
||||
require_once 'libraries/relation.lib.php';
|
||||
require_once 'libraries/navigation/Navigation.class.php';
|
||||
|
||||
/**
|
||||
* Tests for PMA_Navigation class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_NavigationTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @var PMA_Navigation
|
||||
*/
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Sets up the fixture.
|
||||
*
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
protected function setUp()
|
||||
{
|
||||
$this->object = new PMA_Navigation();
|
||||
$GLOBALS['cfgRelation']['db'] = 'pmadb';
|
||||
$GLOBALS['cfgRelation']['navigationhiding'] = 'navigationhiding';
|
||||
$GLOBALS['cfg']['Server']['user'] = 'user';
|
||||
}
|
||||
|
||||
/**
|
||||
* Tears down the fixture.
|
||||
*
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
protected function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests hideNavigationItem() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testHideNavigationItem()
|
||||
{
|
||||
$expectedQuery = "INSERT INTO `pmadb`.`navigationhiding`"
|
||||
. "(`username`, `item_name`, `item_type`, `db_name`, `table_name`)"
|
||||
. " VALUES ('user','itemName','itemType','db','')";
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$dbi->expects($this->once())
|
||||
->method('tryQuery')
|
||||
->with($expectedQuery);
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$this->object->hideNavigationItem('itemName', 'itemType', 'db');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests unhideNavigationItem() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testUnhideNavigationItem()
|
||||
{
|
||||
$expectedQuery = "DELETE FROM `pmadb`.`navigationhiding`"
|
||||
. " WHERE `username`='user' AND `item_name`='itemName'"
|
||||
. " AND `item_type`='itemType' AND `db_name`='db'";
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$dbi->expects($this->once())
|
||||
->method('tryQuery')
|
||||
->with($expectedQuery);
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$this->object->unhideNavigationItem('itemName', 'itemType', 'db');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests getItemUnhideDialog() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testGetItemUnhideDialog()
|
||||
{
|
||||
$expectedQuery = "SELECT `item_name`, `item_type`"
|
||||
. " FROM `pmadb`.`navigationhiding`"
|
||||
. " WHERE `username`='user' AND `db_name`='db' AND `table_name`=''";
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$dbi->expects($this->once())
|
||||
->method('tryQuery')
|
||||
->with($expectedQuery)
|
||||
->will($this->returnValue(true));
|
||||
$dbi->expects($this->at(1))
|
||||
->method('fetchArray')
|
||||
->will(
|
||||
$this->returnValue(
|
||||
array(
|
||||
'item_name' => 'tableName',
|
||||
'item_type' => 'table'
|
||||
)
|
||||
)
|
||||
);
|
||||
$dbi->expects($this->at(2))
|
||||
->method('fetchArray')
|
||||
->will(
|
||||
$this->returnValue(
|
||||
array(
|
||||
'item_name' => 'viewName',
|
||||
'item_type' => 'view'
|
||||
)
|
||||
)
|
||||
);
|
||||
$dbi->expects($this->at(3))
|
||||
->method('fetchArray')
|
||||
->will($this->returnValue(false));
|
||||
$dbi->expects($this->once())
|
||||
->method('freeResult');
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
|
||||
$html = $this->object->getItemUnhideDialog('db');
|
||||
$this->assertContains(
|
||||
'<td>tableName</td>',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'<a href="navigation.php?' . PMA_URL_getCommon()
|
||||
. '&unhideNavItem=true&itemType=table&itemName=tableName&dbName=db"'
|
||||
. ' class="unhideNavItem ajax">',
|
||||
$html
|
||||
);
|
||||
}
|
||||
}
|
||||
?>
|
||||
92
test/classes/navigation/PMA_Node_DatabaseChild_test.php
Normal file
92
test/classes/navigation/PMA_Node_DatabaseChild_test.php
Normal file
@ -0,0 +1,92 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for Node_DatabaseChild
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/url_generating.lib.php';
|
||||
require_once 'libraries/Util.class.php';
|
||||
require_once 'libraries/Theme.class.php';
|
||||
require_once 'libraries/relation.lib.php';
|
||||
require_once 'libraries/navigation/Nodes/Node.class.php';
|
||||
require_once 'libraries/navigation/Nodes/Node_DatabaseChild.class.php';
|
||||
require_once 'libraries/navigation/NodeFactory.class.php';
|
||||
|
||||
/**
|
||||
* Tests for Node_DatabaseChild class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class Node_DatabaseChildTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @var Node_DatabaseChild
|
||||
*/
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Sets up the fixture.
|
||||
*
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
protected function setUp()
|
||||
{
|
||||
$_SESSION['PMA_Theme'] = new PMA_Theme();
|
||||
$GLOBALS['pmaThemePath'] = $_SESSION['PMA_Theme']->getPath();
|
||||
$GLOBALS['pmaThemeImage'] = 'theme/';
|
||||
$GLOBALS['cfg']['DefaultTabDatabase'] = 'db_structure.php';
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['cfg']['ServerDefault'] = 1;
|
||||
$GLOBALS['token'] = 'token';
|
||||
$_SESSION['relation'][1]['navwork'] = true;
|
||||
$this->object = $this->getMockForAbstractClass(
|
||||
'Node_DatabaseChild', array('child')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tears down the fixture.
|
||||
*
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
protected function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests getHtmlForControlButtons() method
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testGetHtmlForControlButtons()
|
||||
{
|
||||
$parent = PMA_NodeFactory::getInstance('Node_Database', 'parent');
|
||||
$parent->addChild($this->object);
|
||||
$this->object->expects($this->once())
|
||||
->method('getItemType')
|
||||
->will($this->returnValue('itemType'));
|
||||
$html = $this->object->getHtmlForControlButtons();
|
||||
|
||||
$this->assertStringStartsWith(
|
||||
'<span class="navItemControls">',
|
||||
$html
|
||||
);
|
||||
$this->assertStringEndsWith(
|
||||
'</span>',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'<a href="navigation.php?' . PMA_URL_getCommon()
|
||||
. '&hideNavItem=true&itemType=itemType&itemName=child'
|
||||
. '&dbName=parent" class="hideNavItem ajax">',
|
||||
$html
|
||||
);
|
||||
}
|
||||
}
|
||||
?>
|
||||
Loading…
Reference in New Issue
Block a user