function it_should_not_encrypt_a_cookie(Request $request, FilterResponseEvent $event, ResponseHeaderBag $headers, Response $response) { $currentCookie = new Cookie('not_session', 'test', 3600, '/account', 'example.com', true, false); $headers->getCookies()->willReturn([$currentCookie]); $response->headers = $headers; $event->getRequest()->willReturn($request); $event->getRequestType()->willReturn(HttpKernelInterface::MASTER_REQUEST); $event->getResponse()->willReturn($response); $this->onKernelResponse($event)->shouldReturn(null); }
public function testCacheControlHeader() { $bag = new ResponseHeaderBag(array()); $this->assertEquals('no-cache', $bag->get('Cache-Control')); $this->assertTrue($bag->hasCacheControlDirective('no-cache')); $bag = new ResponseHeaderBag(array('Cache-Control' => 'public')); $this->assertEquals('public', $bag->get('Cache-Control')); $this->assertTrue($bag->hasCacheControlDirective('public')); $bag = new ResponseHeaderBag(array('ETag' => 'abcde')); $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control')); $this->assertTrue($bag->hasCacheControlDirective('private')); $this->assertTrue($bag->hasCacheControlDirective('must-revalidate')); $this->assertFalse($bag->hasCacheControlDirective('max-age')); $bag = new ResponseHeaderBag(array('Expires' => 'Wed, 16 Feb 2011 14:17:43 GMT')); $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('Expires' => 'Wed, 16 Feb 2011 14:17:43 GMT', 'Cache-Control' => 'max-age=3600')); $this->assertEquals('max-age=3600, private', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('Last-Modified' => 'abcde')); $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('Etag' => 'abcde', 'Last-Modified' => 'abcde')); $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('cache-control' => 'max-age=100')); $this->assertEquals('max-age=100, private', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('cache-control' => 's-maxage=100')); $this->assertEquals('s-maxage=100', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('cache-control' => 'private, max-age=100')); $this->assertEquals('max-age=100, private', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('cache-control' => 'public, max-age=100')); $this->assertEquals('max-age=100, public', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(); $bag->set('Last-Modified', 'abcde'); $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control')); }
public function testWhenOnFirstPageAndPartialRestSet_nextPageIsNotLinked() { $headers = new ResponseHeaderBag(); $headerSetter = new PaginationHeaderSetter($headers); $headerSetter->setHeaders('http://localhost/test', new SimplePaginationInfo(1, 10), 9); $this->assertSame([], $headers->get('Link', null, false)); }
public function it_should_prepare_the_bag(Request $request, Response $response, ResponseHeaderBag $bag) { $response->headers = $bag; $bag->set("content-type", "application/json")->shouldBeCalledTimes(1); $this->test($request, $response); $this->getBag()->shouldBe(["test" => "Ok"]); }
public function testCacheControlHeader() { $bag = new ResponseHeaderBag(array(), 'response'); $this->assertEquals('no-cache', $bag->get('Cache-Control')); $this->assertTrue($bag->hasCacheControlDirective('no-cache')); $bag = new ResponseHeaderBag(array('Cache-Control' => 'public'), 'response'); $this->assertEquals('public', $bag->get('Cache-Control')); $this->assertTrue($bag->hasCacheControlDirective('public')); $bag = new ResponseHeaderBag(array('ETag' => 'abcde'), 'response'); $this->assertEquals('private, max-age=0, must-revalidate', $bag->get('Cache-Control')); $this->assertTrue($bag->hasCacheControlDirective('private')); $this->assertTrue($bag->hasCacheControlDirective('must-revalidate')); $this->assertEquals(0, $bag->getCacheControlDirective('max-age')); $bag = new ResponseHeaderBag(array('Last-Modified' => 'abcde'), 'response'); $this->assertEquals('private, max-age=0, must-revalidate', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('Etag' => 'abcde', 'Last-Modified' => 'abcde'), 'response'); $this->assertEquals('private, max-age=0, must-revalidate', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('cache-control' => 'max-age=100'), 'response'); $this->assertEquals('max-age=100, private', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('cache-control' => 's-maxage=100'), 'response'); $this->assertEquals('s-maxage=100', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('cache-control' => 'private, max-age=100'), 'response'); $this->assertEquals('max-age=100, private', $bag->get('Cache-Control')); $bag = new ResponseHeaderBag(array('cache-control' => 'public, max-age=100'), 'response'); $this->assertEquals('max-age=100, public', $bag->get('Cache-Control')); }
public function testToStringIncludesCookieHeaders() { $bag = new ResponseHeaderBag(array()); $bag->setCookie(new Cookie('foo', 'bar')); $this->assertContains("Set-Cookie: foo=bar; path=/; httponly", explode("\r\n", $bag->__toString())); $bag->clearCookie('foo'); $this->assertContains("Set-Cookie: foo=deleted; expires=" . gmdate("D, d-M-Y H:i:s T", time() - 31536001) . "; httponly", explode("\r\n", $bag->__toString())); }
public function it_sets_cookie_when_it_does(FilterResponseEvent $event, Response $response, ResponseHeaderBag $headers) { $headers->setCookie(Argument::type('Symfony\\Component\\HttpFoundation\\Cookie')); $response->headers = $headers; $event->getRequestType()->willReturn(HttpKernelInterface::MASTER_REQUEST)->shouldBeCalled(); $event->getRequest()->willReturn($this->secureRequest)->shouldBeCalled(); $event->getResponse()->willReturn($response)->shouldBeCalled(); $this->onKernelResponse($event); }
function it_should_set_response_time_to_response_header(Request $req, Response $res, ResponseHeaderBag $bag) { $res->headers = $bag; static::$timer->getStartMilliseconds()->willReturn(1426009224940.0); static::$timer->getEndMilliseconds()->willReturn(1426009226260.0); $bag->set('X-Response-Time', '1320ms', false)->shouldBeCalled(); $next = function ($req) use($res) { return $res->getWrappedObject(); }; $this->handle($req, $next)->shouldReturn($res); }
function it_should_set_response_time_to_response_header(Request $req, Response $res, ResponseHeaderBag $bag) { $res->headers = $bag; $uuid = '25769c6c-d34d-4bfe-ba98-e0ee856f3e7a'; static::$generator->getV4Uuid()->willReturn($uuid); $req->merge(['request-id' => $uuid])->shouldBeCalled(); $bag->set('Request-Id', $uuid, false)->shouldBeCalled(); $next = function ($req) use($res) { return $res->getWrappedObject(); }; $this->handle($req, $next)->shouldReturn($res); }
/** * Check if we need to remove Cache-Control for SSL encrypted downloads when using IE < 9 * * @link http://support.microsoft.com/kb/323308 */ protected function ensureIEOverSSLCompatibility(Request $request) { if (false !== stripos($this->headers->get('Content-Disposition'), 'attachment') && preg_match('/MSIE (.*?);/i', $request->server->get('HTTP_USER_AGENT'), $match) == 1 && true === $request->isSecure()) { if (intval(preg_replace("/(MSIE )(.*?);/", "\$2", $match[0])) < 9) { $this->headers->remove('Cache-Control'); } } }
protected function fixContentType() { if (!$this->headers->has('Content-Type')) { $this->headers->set('Content-Type', 'text/html; charset=' . $this->charset); } elseif ('text/' === substr($this->headers->get('Content-Type'), 0, 5) && false === strpos($this->headers->get('Content-Type'), 'charset')) { // add the charset $this->headers->set('Content-Type', $this->headers->get('Content-Type') . '; charset=' . $this->charset); } }
function it_persists_fake_channel_codes_in_a_cookie(FakeChannelCodeProviderInterface $fakeHostnameProvider, FilterResponseEvent $filterResponseEvent, Request $request, Response $response, ResponseHeaderBag $responseHeaderBag) { $filterResponseEvent->getRequestType()->willReturn(HttpKernelInterface::MASTER_REQUEST); $filterResponseEvent->getRequest()->willReturn($request); $fakeHostnameProvider->getCode($request)->willReturn('fake_channel_code'); $filterResponseEvent->getResponse()->willReturn($response); $response->headers = $responseHeaderBag; $responseHeaderBag->setCookie(Argument::that(function (Cookie $cookie) { if ($cookie->getName() !== '_channel_code') { return false; } if ($cookie->getValue() !== 'fake_channel_code') { return false; } return true; }))->shouldBeCalled(); $this->onKernelResponse($filterResponseEvent); }
public function testRemoveCookie() { $bag = new ResponseHeaderBag(); $bag->setCookie(new Cookie('foo', 'bar', 0, '/path/foo', 'foo.bar')); $bag->setCookie(new Cookie('bar', 'foo', 0, '/path/bar', 'foo.bar')); $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY); $this->assertTrue(isset($cookies['foo.bar']['/path/foo'])); $bag->removeCookie('foo', '/path/foo', 'foo.bar'); $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY); $this->assertFalse(isset($cookies['foo.bar']['/path/foo'])); $bag->removeCookie('bar', '/path/bar', 'foo.bar'); $cookies = $bag->getCookies(ResponseHeaderBag::COOKIES_ARRAY); $this->assertFalse(isset($cookies['foo.bar'])); }
protected function getHttpHeaders(Request $httpRequest, $result) { $headers = new ResponseHeaderBag(); $headers->set("Content-Type", $this->getMimeType() . "; charset=utf-8"); return $headers; }
/** * @param string $location * * @return Boolean * * @api */ public function isRedirect($location = null) { return in_array($this->statusCode, array(201, 301, 302, 303, 307)) && (null === $location ?: $location == $this->headers->get('Location')); }
public function isRedirected($location) { return $this->isRedirect() && $location == $this->headers->get('Location'); }
/** * @dataProvider provideMakeDispositionFail * @expectedException \InvalidArgumentException */ public function testMakeDispositionFail($disposition, $filename) { $headers = new ResponseHeaderBag(); $headers->makeDisposition($disposition, $filename); }
/** * @param array $app * @param ResponseHeaderBag $headers */ private function setPageDataIfExists(array $app, ResponseHeaderBag $headers) { if (isset($app[Headers::PAGE_DATA_KEY])) { $headers->set(Headers::PAGE_DATA_HEADER, json_encode(Escaper::escape($app[Headers::PAGE_DATA_KEY]))); } }
/** * Sets headers to apply to all responses being sent * * @param string $name Header name * @param string $value Header value * @param bool $replace Replace existing headers * @return void */ public function setHeader($name, $value, $replace = true) { $this->headers->set($name, $value, $replace); }
function it_listens_cookie_event(CookieEvent $cookieEvent, Response $response, ResponseHeaderBag $responseHeaderBag, SessionInterface $session) { $cookieEvent->getSession()->shouldBeCalled()->willReturn($session); $session->has('access_token')->shouldBeCalled()->willReturn(true); $session->has('refresh_token')->shouldBeCalled()->willReturn(true); $cookieEvent->getResponse()->shouldBeCalled()->willReturn($response); $session->get('access_token')->shouldBeCalled()->willReturn('accesstoken'); $session->get('refresh_token')->shouldBeCalled()->willReturn('refreshtoken'); $responseHeaderBag->setCookie(Argument::type('Symfony\\Component\\HttpFoundation\\Cookie'))->shouldBeCalled(); $responseHeaderBag->setCookie(Argument::type('Symfony\\Component\\HttpFoundation\\Cookie'))->shouldBeCalled(); $response->headers = $responseHeaderBag; $this->onCookieEvent($cookieEvent); }