45 lines
1.6 KiB
PHP
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;
|
|
}
|
|
}
|