[HttpFoundation] fix cookie path default value to / and added some new unit tests to cover the class
This commit is contained in:
parent
6790e45911
commit
ad56bd8e47
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -17,6 +17,7 @@ use Symfony\Component\HttpFoundation\Cookie;
|
||||
* CookieTest
|
||||
*
|
||||
* @author John Kary <john@johnkary.net>
|
||||
* @author Hugo Hamon <hugo.hamon@sensio.com>
|
||||
*/
|
||||
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');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user