140 lines
3.6 KiB
PHP
140 lines
3.6 KiB
PHP
<?php
|
|
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
|
/**
|
|
* Holds ServerPluginsControllerTest class
|
|
*
|
|
* @package PhpMyAdmin-test
|
|
*/
|
|
|
|
/*
|
|
* Include to test.
|
|
*/
|
|
use PMA\libraries\Theme;
|
|
use PMA\libraries\controllers\server\ServerPluginsController;
|
|
use PMA\libraries\di\Container;
|
|
|
|
require_once 'libraries/database_interface.inc.php';
|
|
require_once 'libraries/sanitizing.lib.php';
|
|
require_once 'libraries/js_escape.lib.php';
|
|
require_once 'test/PMATestCase.php';
|
|
|
|
/**
|
|
* Tests for ServerPluginsController class
|
|
*
|
|
* @package PhpMyAdmin-test
|
|
*/
|
|
class ServerPluginsControllerTest extends PMATestCase
|
|
{
|
|
/**
|
|
* Prepares environment for the test.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function setUp()
|
|
{
|
|
//$_REQUEST
|
|
$_REQUEST['log'] = "index1";
|
|
$_REQUEST['pos'] = 3;
|
|
|
|
//$GLOBALS
|
|
$GLOBALS['table'] = "table";
|
|
$GLOBALS['pmaThemeImage'] = 'image';
|
|
|
|
//$_SESSION
|
|
$_SESSION['PMA_Theme'] = Theme::load('./themes/pmahomme');
|
|
$_SESSION['PMA_Theme'] = new Theme();
|
|
}
|
|
|
|
/**
|
|
* Test for _getPluginsHtml() method
|
|
*
|
|
* @return void
|
|
*/
|
|
public function testPMAGetPluginAndModuleInfo()
|
|
{
|
|
/**
|
|
* Prepare plugin list
|
|
*/
|
|
$row = array();
|
|
$row["plugin_name"] = "plugin_name1";
|
|
$row["plugin_type"] = "plugin_type1";
|
|
$row["plugin_type_version"] = "plugin_version1";
|
|
$row["plugin_author"] = "plugin_author1";
|
|
$row["plugin_license"] = "plugin_license1";
|
|
$row["plugin_description"] = "plugin_description1";
|
|
$row["is_active"] = true;
|
|
|
|
//Mock DBI
|
|
$dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface')
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
$dbi->expects($this->once())
|
|
->method('query')
|
|
->will($this->returnValue(true));
|
|
$dbi->expects($this->at(1))
|
|
->method('fetchAssoc')
|
|
->will($this->returnValue($row));
|
|
$dbi->expects($this->at(2))
|
|
->method('fetchAssoc')
|
|
->will($this->returnValue(false));
|
|
$dbi->expects($this->once())
|
|
->method('freeResult')
|
|
->will($this->returnValue(true));
|
|
|
|
$container = Container::getDefaultContainer();
|
|
$container->set('dbi', $dbi);
|
|
|
|
$class = new ReflectionClass('\PMA\libraries\controllers\server\ServerPluginsController');
|
|
$method = $class->getMethod('_getPluginsHtml');
|
|
$method->setAccessible(true);
|
|
|
|
$ctrl = new ServerPluginsController();
|
|
$html = $method->invoke($ctrl);
|
|
|
|
//validate 1:Items
|
|
$this->assertContains(
|
|
'<th>Plugin</th>',
|
|
$html
|
|
);
|
|
$this->assertContains(
|
|
'<th>Description</th>',
|
|
$html
|
|
);
|
|
$this->assertContains(
|
|
'<th>Version</th>',
|
|
$html
|
|
);
|
|
$this->assertContains(
|
|
'<th>Author</th>',
|
|
$html
|
|
);
|
|
$this->assertContains(
|
|
'<th>License</th>',
|
|
$html
|
|
);
|
|
|
|
//validate 2: one Item HTML
|
|
$this->assertContains(
|
|
'plugin_name1',
|
|
$html
|
|
);
|
|
$this->assertContains(
|
|
'<td>plugin_description1</td>',
|
|
$html
|
|
);
|
|
$this->assertContains(
|
|
'<td>plugin_version1</td>',
|
|
$html
|
|
);
|
|
$this->assertContains(
|
|
'<td>plugin_author1</td>',
|
|
$html
|
|
);
|
|
$this->assertContains(
|
|
'<td>plugin_license1</td>',
|
|
$html
|
|
);
|
|
}
|
|
}
|