Skip to content

Commit

Permalink
[HttpKernel] removed Response content when Request method is HEAD as …
Browse files Browse the repository at this point in the history
…per RFC2616
  • Loading branch information
fabpot committed Jun 4, 2011
1 parent c62b230 commit 7780c4d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
Expand Up @@ -36,12 +36,17 @@ public function __construct($charset)
*/
public function onCoreResponse(FilterResponseEvent $event)
{
$request = $event->getRequest();
$response = $event->getResponse();

if ('HEAD' === $request->getMethod()) {
$response->setContent('');
}

if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
return;
}

$response = $event->getResponse();

if (null === $response->getCharset()) {
$response->setCharset($this->charset);
}
Expand All @@ -50,7 +55,6 @@ public function onCoreResponse(FilterResponseEvent $event)
return;
}

$request = $event->getRequest();
$format = $request->getRequestFormat();
if ((null !== $format) && $mimeType = $request->getMimeType($format)) {
$response->headers->set('Content-Type', $mimeType);
Expand Down
Expand Up @@ -76,4 +76,15 @@ public function testFilterSetContentType()

$this->assertEquals('application/json', $event->getResponse()->headers->get('content-type'));
}

public function testFilterRemovesContentForHeadRequests()
{
$response = new Response('foo');
$request = Request::create('/', 'HEAD');

$event = new FilterResponseEvent($this->kernel, $request, HttpKernelInterface::MASTER_REQUEST, $response);
$this->dispatcher->dispatch(CoreEvents::RESPONSE, $event);

$this->assertEquals('', $response->getContent());
}
}

0 comments on commit 7780c4d

Please sign in to comment.