phpmyadmin/test/classes/PmdCommonTest.php
Gabriel Caruso 45828153b6 Use PSR-1 for PHPUnit TestCase
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2017-11-06 06:29:04 -02:00

274 lines
7.4 KiB
PHP

<?php
/**
* Tests for PhpMyAdmin\PmdCommon
*
* @package PhpMyAdmin-test
*/
namespace PhpMyAdmin\Tests;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\PmdCommon;
use PhpMyAdmin\Relation;
use PHPUnit\Framework\TestCase;
/**
* Tests for PhpMyAdmin\PmdCommon
*
* @package PhpMyAdmin-test
*/
class PmdCommonTest extends TestCase
{
/**
* Setup for test cases
*
* @return void
*/
public function setup()
{
$GLOBALS['server'] = 1;
$_SESSION = array(
'relation' => array(
'1' => array(
'PMA_VERSION' => PMA_VERSION,
'db' => 'pmadb',
'pdf_pages' => 'pdf_pages',
'pdfwork' => true,
'table_coords' => 'table_coords'
)
)
);
}
/**
* Test for PmdCommon::getTablePositions()
*
* @return void
*/
public function testGetTablePositions()
{
$pg = 1;
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->any())->method('escapeString')
->will($this->returnArgument(0));
$dbi->expects($this->once())
->method('fetchResult')
->with(
"
SELECT CONCAT_WS('.', `db_name`, `table_name`) AS `name`,
`x` AS `X`,
`y` AS `Y`,
1 AS `V`,
1 AS `H`
FROM `pmadb`.`table_coords`
WHERE pdf_page_number = " . $pg,
'name',
null,
DatabaseInterface::CONNECT_CONTROL,
DatabaseInterface::QUERY_STORE
);
$GLOBALS['dbi'] = $dbi;
PmdCommon::getTablePositions($pg);
}
/**
* Test for PmdCommon::getPageName()
*
* @return void
*/
public function testGetPageName()
{
$pg = 1;
$pageName = 'pageName';
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->any())->method('escapeString')
->will($this->returnArgument(0));
$dbi->expects($this->once())
->method('fetchResult')
->with(
"SELECT `page_descr` FROM `pmadb`.`pdf_pages`"
. " WHERE `page_nr` = " . $pg,
null,
null,
DatabaseInterface::CONNECT_CONTROL,
DatabaseInterface::QUERY_STORE
)
->will($this->returnValue(array($pageName)));
$GLOBALS['dbi'] = $dbi;
$result = PmdCommon::getPageName($pg);
$this->assertEquals($pageName, $result);
}
/**
* Test for PmdCommon::deletePage()
*
* @return void
*/
public function testDeletePage()
{
$pg = 1;
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->exactly(2))
->method('query')
->willReturnOnConsecutiveCalls(
true,
true
);
$dbi->expects($this->any())->method('escapeString')
->will($this->returnArgument(0));
$GLOBALS['dbi'] = $dbi;
$result = PmdCommon::deletePage($pg);
$this->assertEquals(true, $result);
}
/**
* Test for testGetDefaultPage() when there is a default page
* (a page having the same name as database)
*
* @return void
*/
public function testGetDefaultPage()
{
$db = 'db';
$default_pg = '2';
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('fetchResult')
->with(
"SELECT `page_nr` FROM `pmadb`.`pdf_pages`"
. " WHERE `db_name` = '" . $db . "'"
. " AND `page_descr` = '" . $db . "'",
null,
null,
DatabaseInterface::CONNECT_CONTROL,
DatabaseInterface::QUERY_STORE
)
->will($this->returnValue(array($default_pg)));
$dbi->expects($this->any())->method('escapeString')
->will($this->returnArgument(0));
$GLOBALS['dbi'] = $dbi;
$result = PmdCommon::getDefaultPage($db);
$this->assertEquals($default_pg, $result);
}
/**
* Test for testGetDefaultPage() when there is no default page
*
* @return void
*/
public function testGetDefaultPageWithNoDefaultPage()
{
$db = 'db';
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('fetchResult')
->with(
"SELECT `page_nr` FROM `pmadb`.`pdf_pages`"
. " WHERE `db_name` = '" . $db . "'"
. " AND `page_descr` = '" . $db . "'",
null,
null,
DatabaseInterface::CONNECT_CONTROL,
DatabaseInterface::QUERY_STORE
)
->will($this->returnValue(array()));
$dbi->expects($this->any())->method('escapeString')
->will($this->returnArgument(0));
$GLOBALS['dbi'] = $dbi;
$result = PmdCommon::getDefaultPage($db);
$this->assertEquals(-1, $result);
}
/**
* Test for testGetLoadingPage() when there is a default page
*
* @return void
*/
public function testGetLoadingPageWithDefaultPage()
{
$db = 'db';
$default_pg = '2';
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('fetchResult')
->with(
"SELECT `page_nr` FROM `pmadb`.`pdf_pages`"
. " WHERE `db_name` = '" . $db . "'"
. " AND `page_descr` = '" . $db . "'",
null,
null,
DatabaseInterface::CONNECT_CONTROL,
DatabaseInterface::QUERY_STORE
)
->will($this->returnValue(array($default_pg)));
$dbi->expects($this->any())->method('escapeString')
->will($this->returnArgument(0));
$GLOBALS['dbi'] = $dbi;
$result = PmdCommon::getLoadingPage($db);
$this->assertEquals($default_pg, $result);
}
/**
* Test for testGetLoadingPage() when there is no default page
*
* @return void
*/
public function testGetLoadingPageWithNoDefaultPage()
{
$db = 'db';
$first_pg = '1';
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->exactly(2))
->method('fetchResult')
->willReturnOnConsecutiveCalls(
array(),
array(array($first_pg))
);
$dbi->expects($this->any())->method('escapeString')
->will($this->returnArgument(0));
$GLOBALS['dbi'] = $dbi;
$result = PmdCommon::getLoadingPage($db);
$this->assertEquals($first_pg, $result);
}
}