diff --git a/src/Symfony/Component/HttpFoundation/Cookie.php b/src/Symfony/Component/HttpFoundation/Cookie.php index a8b24276cd..0760b09003 100644 --- a/src/Symfony/Component/HttpFoundation/Cookie.php +++ b/src/Symfony/Component/HttpFoundation/Cookie.php @@ -24,9 +24,9 @@ class Cookie protected $expire; protected $path; protected $secure; - protected $httponly; + protected $httpOnly; - public function __construct($name, $value = null, $expire = 0, $path = null, $domain = null, $secure = false, $httponly = true) + public function __construct($name, $value = null, $expire = 0, $path = '/', $domain = null, $secure = false, $httpOnly = true) { // from PHP source code if (preg_match("/[=,; \t\r\n\013\014]/", $name)) { @@ -47,7 +47,7 @@ class Cookie $this->expire = (integer) $expire; $this->path = $path; $this->secure = (Boolean) $secure; - $this->httponly = (Boolean) $httponly; + $this->httpOnly = (Boolean) $httpOnly; } public function getName() @@ -80,9 +80,9 @@ class Cookie return $this->secure; } - public function isHttponly() + public function isHttpOnly() { - return $this->httponly; + return $this->httpOnly; } /** diff --git a/tests/Symfony/Tests/Component/HttpFoundation/CookieTest.php b/tests/Symfony/Tests/Component/HttpFoundation/CookieTest.php index 7ab76a4c12..0dfcd69405 100644 --- a/tests/Symfony/Tests/Component/HttpFoundation/CookieTest.php +++ b/tests/Symfony/Tests/Component/HttpFoundation/CookieTest.php @@ -17,6 +17,7 @@ use Symfony\Component\HttpFoundation\Cookie; * CookieTest * * @author John Kary + * @author Hugo Hamon */ class CookieTest extends \PHPUnit_Framework_TestCase { @@ -79,4 +80,53 @@ class CookieTest extends \PHPUnit_Framework_TestCase $this->assertSame($value, $cookie->getValue(), '->getValue() returns the proper value'); } + + public function testGetPath() + { + $cookie = new Cookie('foo', 'bar'); + + $this->assertSame('/', $cookie->getPath(), '->getPath() returns / as the default path'); + } + + public function testGetExpires() + { + $cookie = new Cookie('foo', 'bar', 3600); + + $this->assertEquals(3600, $cookie->getExpire(), '->getExpire() returns the expire date'); + } + + public function testGetDomain() + { + $cookie = new Cookie('foo', 'bar', 3600, '/', '.myfoodomain.com'); + + $this->assertEquals('.myfoodomain.com', $cookie->getDomain(), '->getDomain() returns the domain name on which the cookie is valid'); + } + + public function testIsSecure() + { + $cookie = new Cookie('foo', 'bar', 3600, '/', '.myfoodomain.com', true); + + $this->assertTrue($cookie->isSecure(), '->isSecure() returns whether the cookie is transmitted over HTTPS'); + } + + public function testIsHttpOnly() + { + $cookie = new Cookie('foo', 'bar', 3600, '/', '.myfoodomain.com', false, true); + + $this->assertTrue($cookie->isHttpOnly(), '->isHttpOnly() returns whether the cookie is only transmitted over HTTP'); + } + + public function testCookieIsNotCleared() + { + $cookie = new Cookie('foo', 'bar', time()+3600*24); + + $this->assertFalse($cookie->isCleared(), '->isCleared() returns false if the cookie did not expire yet'); + } + + public function testCookieIsCleared() + { + $cookie = new Cookie('foo', 'bar', time()-20); + + $this->assertTrue($cookie->isCleared(), '->isCleared() returns true if the cookie has expired'); + } }