Quellcode durchsuchen

[HttpFoundation] included cookie headers in string representation

jsor vor 14 Jahren
Ursprung
Commit
f9b6c8b74a

+ 15 - 0
src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php

@@ -33,6 +33,21 @@ class ResponseHeaderBag extends HeaderBag
             $this->set('cache-control', '');
             $this->set('cache-control', '');
         }
         }
     }
     }
+    
+    /**
+     * {@inheritdoc}
+     */
+    public function __toString()
+    {
+        $cookies = '';
+        foreach ($this->cookies as $cookie) {
+            $cookies .= 'Set-Cookie: '.$cookie."\r\n";
+        }
+
+        return
+            parent::__toString().
+            $cookies;
+    }
 
 
     /**
     /**
      * {@inheritdoc}
      * {@inheritdoc}

+ 13 - 0
tests/Symfony/Tests/Component/HttpFoundation/ResponseHeaderBagTest.php

@@ -12,6 +12,7 @@
 namespace Symfony\Tests\Component\HttpFoundation;
 namespace Symfony\Tests\Component\HttpFoundation;
 
 
 use Symfony\Component\HttpFoundation\ResponseHeaderBag;
 use Symfony\Component\HttpFoundation\ResponseHeaderBag;
+use Symfony\Component\HttpFoundation\Cookie;
 
 
 class ResponseHeaderBagTest extends \PHPUnit_Framework_TestCase
 class ResponseHeaderBagTest extends \PHPUnit_Framework_TestCase
 {
 {
@@ -62,4 +63,16 @@ class ResponseHeaderBagTest extends \PHPUnit_Framework_TestCase
         $bag->set('Last-Modified', 'abcde');
         $bag->set('Last-Modified', 'abcde');
         $this->assertEquals('private, must-revalidate', $bag->get('Cache-Control'));
         $this->assertEquals('private, must-revalidate', $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=Thu, 01 Jan 1970 00:00:00 GMT; httponly", explode("\r\n", $bag->__toString()));
+    }
 }
 }