123]); $redirect->setProtocolVersion('2.0'); $redirect->setCharset('ibm-943_P14A-2000'); $redirect->headers->setCookie(new Cookie('name', 'value')); // Make a cloned redirect. $secureRedirect = SecuredRedirectStub::createFromRedirectResponse($redirect); $this->assertEquals('/magic_redirect_url', $secureRedirect->getTargetUrl()); $this->assertEquals(301, $secureRedirect->getStatusCode()); // We pull the headers from the original redirect because there are default headers applied. $headers1 = $redirect->headers->allPreserveCase(); $headers2 = $secureRedirect->headers->allPreserveCase(); // We unset cache headers so we don't test arcane Symfony weirdness. // https://github.com/symfony/symfony/issues/16171 unset($headers1['Cache-Control'], $headers2['Cache-Control']); $this->assertEquals($headers1, $headers2); $this->assertEquals('2.0', $secureRedirect->getProtocolVersion()); $this->assertEquals('ibm-943_P14A-2000', $secureRedirect->getCharset()); $this->assertEquals($redirect->headers->getCookies(), $secureRedirect->headers->getCookies()); } } class SecuredRedirectStub extends SecuredRedirectResponse { /** * {@inheritdoc} */ protected function isSafe($url) { // Empty implementation for testing. return TRUE; } }