*/ private array $backupGet = []; /** @var array */ private array $backupServer = []; protected function setUp(): void { parent::setUp(); $this->backupGet = $_GET; $this->backupServer = $_SERVER; } protected function tearDown(): void { $_GET = $this->backupGet; $_SERVER = $this->backupServer; parent::tearDown(); } public function testSetsParamFromGetSuperglobal(): void { $_GET = ['magesail_store' => 'from_get']; $plugin = new EnsureTunnelParamPlugin(); $request = new Http(); self::assertNull($request->getParam('magesail_store')); $called = false; $proceed = static function ($req) use (&$called) { $called = true; return 'ok'; }; $result = $plugin->aroundDispatch(new FrontController(), $proceed, $request); self::assertTrue($called); self::assertSame('ok', $result); self::assertSame('from_get', $request->getParam('magesail_store')); } public function testDoesNotOverrideExistingRequestParam(): void { $_GET = ['magesail_store' => 'from_get']; $plugin = new EnsureTunnelParamPlugin(); $request = new Http(); $request->setParam('magesail_store', 'already'); $proceed = static fn () => 'done'; $plugin->aroundDispatch(new FrontController(), $proceed, $request); self::assertSame('already', $request->getParam('magesail_store')); } }