phpmyadmin/tests/unit/Http/Middleware/UrlParamsSettingTest.php
Kamil Tekiela 6add4fccf0 Refactor UrlParamsSetting
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2024-11-13 15:32:01 -03:00

45 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Http\Middleware;
use PhpMyAdmin\Config;
use PhpMyAdmin\Http\Factory\ServerRequestFactory;
use PhpMyAdmin\Http\Middleware\UrlParamsSetting;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\UrlParams;
use PHPUnit\Framework\Attributes\CoversClass;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Server\RequestHandlerInterface;
#[CoversClass(UrlParamsSetting::class)]
final class UrlParamsSettingTest extends AbstractTestCase
{
public function testProcess(): void
{
UrlParams::$params = [];
$GLOBALS['goto'] = null;
$GLOBALS['back'] = null;
$request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/')
->withQueryParams(['goto' => 'index.php?route=/', 'back' => 'index.php?route=/']);
$response = self::createStub(ResponseInterface::class);
$handler = self::createMock(RequestHandlerInterface::class);
$handler->method('handle')->with($request)->willReturn($response);
$urlParamsSetting = new UrlParamsSetting(self::createStub(Config::class));
self::assertSame($response, $urlParamsSetting->process($request, $handler));
/** @psalm-suppress TypeDoesNotContainType */
self::assertSame('index.php?route=/', $GLOBALS['goto']);
/** @psalm-suppress TypeDoesNotContainType */
self::assertSame('index.php?route=/', $GLOBALS['back']);
/** @psalm-suppress TypeDoesNotContainType */
self::assertSame(['goto' => 'index.php?route=/'], UrlParams::$params);
$GLOBALS['goto'] = null;
$GLOBALS['back'] = null;
}
}