From 850bd5a06bb575a9bbdb5183be380182b8675cef Mon Sep 17 00:00:00 2001 From: Bart van den Burg Date: Tue, 26 Feb 2013 09:53:49 +0100 Subject: [PATCH] [HttpFoundation] Fixed messed up headers --- .../Component/HttpFoundation/ResponseHeaderBag.php | 2 ++ .../HttpFoundation/Tests/ResponseHeaderBagTest.php | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php b/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php index 531e003fb7..f52f048875 100644 --- a/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php +++ b/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php @@ -67,6 +67,8 @@ class ResponseHeaderBag extends HeaderBag $cookies .= 'Set-Cookie: '.$cookie."\r\n"; } + ksort($this->headerNames); + return parent::__toString().$cookies; } diff --git a/src/Symfony/Component/HttpFoundation/Tests/ResponseHeaderBagTest.php b/src/Symfony/Component/HttpFoundation/Tests/ResponseHeaderBagTest.php index fd163d197d..c3dd9a27fc 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/ResponseHeaderBagTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/ResponseHeaderBagTest.php @@ -235,6 +235,20 @@ class ResponseHeaderBagTest extends \PHPUnit_Framework_TestCase $this->assertEquals($expected, $headers->makeDisposition($disposition, $filename, $filenameFallback)); } + public function testToStringDoesntMessUpHeaders() + { + $headers = new ResponseHeaderBag(); + + $headers->set('Location', 'http://www.symfony.com'); + $headers->set('Content-type', 'text/html'); + + (string) $headers; + + $allHeaders = $headers->allPreserveCase(); + $this->assertEquals(array('http://www.symfony.com'), $allHeaders['Location']); + $this->assertEquals(array('text/html'), $allHeaders['Content-type']); + } + public function provideMakeDisposition() { return array(