[
'1' => [
'PMA_VERSION' => PMA_VERSION,
'db' => 'pmadb',
'pdf_pages' => 'pdf_pages',
'pdfwork' => true
]
],
' PMA_token ' => 'token'
];
$this->designer = new Designer();
}
/**
* Mocks database interaction for tests.
*
* @param string $db database name
*
* @return void
*/
private function _mockDatabaseInteraction($db)
{
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('tryQuery')
->with(
"SELECT `page_nr`, `page_descr` FROM `pmadb`.`pdf_pages`"
. " WHERE db_name = '" . $db . "' ORDER BY `page_descr`",
DatabaseInterface::CONNECT_CONTROL,
DatabaseInterface::QUERY_STORE,
false
)
->will($this->returnValue('dummyRS'));
$dbi->expects($this->exactly(3))
->method('fetchAssoc')
->willReturnOnConsecutiveCalls(
['page_nr' => '1', 'page_descr' => 'page1'],
['page_nr' => '2', 'page_descr' => 'page2'],
false
);
$dbi->expects($this->any())
->method('escapeString')
->will($this->returnArgument(0));
$GLOBALS['dbi'] = $dbi;
}
/**
* Test for getPageIdsAndNames()
*
* @return void
*/
public function testGetPageIdsAndNames()
{
$db = 'db';
$this->_mockDatabaseInteraction($db);
$method = new ReflectionMethod(Designer::class, 'getPageIdsAndNames');
$method->setAccessible(true);
$result = $method->invokeArgs($this->designer, [$db]);
$this->assertEquals(
[
'1' => 'page1',
'2' => 'page2'
],
$result
);
}
/**
* Test for getHtmlForEditOrDeletePages()
*
* @return void
*/
public function testGetHtmlForEditOrDeletePages()
{
$db = 'db';
$operation = 'edit';
$this->_mockDatabaseInteraction($db);
$result = $this->designer->getHtmlForEditOrDeletePages($db, $operation);
$this->assertContains(
'',
$result
);
$this->assertContains(
'