1
0
mirror of https://github.com/phpmyadmin/phpmyadmin.git synced 2026-10-23 18:29:15 +03:00
Files
phpmyadmin/tests/unit/Controllers/PhpInfoControllerTest.php
2026-10-17 02:01:25 +01:00

61 lines
2.1 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\PhpInfoController;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Factory\ServerRequestFactory;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
use PHPUnit\Framework\Attributes\CoversClass;
use function ob_get_clean;
use function ob_start;
use function phpinfo;
use const INFO_CONFIGURATION;
use const INFO_GENERAL;
use const INFO_MODULES;
#[CoversClass(PhpInfoController::class)]
final class PhpInfoControllerTest extends AbstractTestCase
{
public function testWithShowPhpInfoEqualsTrue(): void
{
$config = new Config();
$config->settings['ShowPhpInfo'] = true;
$request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/');
$controller = new PhpInfoController(new ResponseRenderer($config), ResponseFactory::create(), $config);
$response = $controller($request);
ob_start();
phpinfo(INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES);
$expected = (string) ob_get_clean();
self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode());
self::assertSame(['text/html; charset=utf-8'], $response->getHeader('Content-Type'));
self::assertSame($expected, (string) $response->getBody());
}
public function testWithShowPhpInfoEqualsFalse(): void
{
$config = new Config();
$config->settings['ShowPhpInfo'] = false;
$config->set('PmaAbsoluteUri', 'http://localhost/phpmyadmin');
$request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/');
$controller = new PhpInfoController(new ResponseRenderer($config), ResponseFactory::create(), $config);
$response = $controller($request);
self::assertSame(StatusCodeInterface::STATUS_FOUND, $response->getStatusCode());
self::assertSame('/phpmyadmin/', $response->getHeaderLine('Location'));
}
}