Merge remote-tracking branch 'origin/master'

This commit is contained in:
Weblate 2013-08-16 14:57:29 +02:00
commit b94baebc60
3 changed files with 244 additions and 2 deletions

View File

@ -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) : '') . "'";

View 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
);
}
}
?>

View 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
);
}
}
?>