phpmyadmin/tests/unit/Controllers/CheckRelationsControllerTest.php
Maurício Meneghini Fauth 606f66b5df
Rename tests/classes to tests/unit
This directory is for unit tests only, so let's rename it to unit to be
more clear.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-02-23 13:29:07 -03:00

67 lines
2.1 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers;
use PhpMyAdmin\Config;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\CheckRelationsController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\DbiDummy;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
use PHPUnit\Framework\Attributes\CoversClass;
use ReflectionProperty;
#[CoversClass(CheckRelationsController::class)]
class CheckRelationsControllerTest extends AbstractTestCase
{
protected DatabaseInterface $dbi;
protected DbiDummy $dummyDbi;
protected function setUp(): void
{
parent::setUp();
$this->dummyDbi = $this->createDbiDummy();
$this->dbi = $this->createDatabaseInterface($this->dummyDbi);
DatabaseInterface::$instance = $this->dbi;
}
public function testCheckRelationsController(): void
{
Current::$database = '';
Current::$table = '';
$request = self::createStub(ServerRequest::class);
$request->method('getParsedBodyParam')->willReturnMap([
['create_pmadb', null, null],
['fixall_pmadb', null, null],
['fix_pmadb', null, null],
]);
$response = new ResponseRenderer();
Config::getInstance()->selectedServer['pmadb'] = '';
(new ReflectionProperty(Relation::class, 'cache'))->setValue(null, null);
$controller = new CheckRelationsController($response, new Template(), new Relation($this->dbi));
$controller($request);
$actual = $response->getHTMLResult();
self::assertStringContainsString('phpMyAdmin configuration storage', $actual);
self::assertStringContainsString(
'Configuration of pmadb… <span class="text-danger"><strong>not OK</strong></span>',
$actual,
);
self::assertStringContainsString(
'Create</a> a database named \'phpmyadmin\' and setup the phpMyAdmin configuration storage there.',
$actual,
);
}
}