2011-02-06 04:42:19 +00:00
< ? php
/*
* This file is part of the Symfony package .
*
2011-03-06 11:40:06 +00:00
* ( c ) Fabien Potencier < fabien @ symfony . com >
2011-02-06 04:42:19 +00:00
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Tests\Component\HttpFoundation ;
use Symfony\Component\HttpFoundation\Cookie ;
/**
* CookieTest
*
* @ author John Kary < john @ johnkary . net >
2011-03-03 13:49:34 +00:00
* @ author Hugo Hamon < hugo . hamon @ sensio . com >
2011-02-06 04:42:19 +00:00
*/
class CookieTest extends \PHPUnit_Framework_TestCase
{
public function invalidNames ()
{
return array (
array ( '' ),
array ( " ,MyName " ),
array ( " ;MyName " ),
array ( " MyName " ),
array ( " \t MyName " ),
array ( " \r MyName " ),
array ( " \n MyName " ),
array ( " \013 MyName " ),
array ( " \014 MyName " ),
);
}
public function invalidValues ()
{
return array (
array ( " ,MyValue " ),
array ( " ;MyValue " ),
array ( " MyValue " ),
array ( " \t MyValue " ),
array ( " \r MyValue " ),
array ( " \n MyValue " ),
array ( " \013 MyValue " ),
array ( " \014 MyValue " ),
);
}
/**
* @ dataProvider invalidNames
* @ expectedException InvalidArgumentException
* @ covers Symfony\Component\HttpFoundation\Cookie :: __construct
*/
public function testInstantiationThrowsExceptionIfCookieNameContainsInvalidCharacters ( $name )
{
new Cookie ( $name );
}
/**
* @ dataProvider invalidValues
* @ expectedException InvalidArgumentException
* @ covers Symfony\Component\HttpFoundation\Cookie :: __construct
*/
public function testInstantiationThrowsExceptionIfCookieValueContainsInvalidCharacters ( $value )
{
new Cookie ( 'MyCookie' , $value );
}
2011-04-15 20:12:02 +01:00
2011-03-05 23:13:47 +00:00
/**
* @ expectedException InvalidArgumentException
*/
public function testInvalidExpiration ()
{
2011-04-15 20:12:02 +01:00
$cookie = new Cookie ( 'MyCookie' , 'foo' , 'bar' );
2011-03-05 23:13:47 +00:00
}
2011-02-06 04:42:19 +00:00
/**
* @ covers Symfony\Component\HttpFoundation\Cookie :: getValue
*/
public function testGetValue ()
{
$value = 'MyValue' ;
$cookie = new Cookie ( 'MyCookie' , $value );
$this -> assertSame ( $value , $cookie -> getValue (), '->getValue() returns the proper value' );
}
2011-03-03 13:49:34 +00:00
public function testGetPath ()
{
$cookie = new Cookie ( 'foo' , 'bar' );
$this -> assertSame ( '/' , $cookie -> getPath (), '->getPath() returns / as the default path' );
}
2011-04-13 19:09:04 +01:00
public function testGetExpiresTime ()
2011-03-03 13:49:34 +00:00
{
$cookie = new Cookie ( 'foo' , 'bar' , 3600 );
2011-04-13 19:09:04 +01:00
$this -> assertEquals ( 3600 , $cookie -> getExpiresTime (), '->getExpiresTime() returns the expire date' );
2011-03-03 13:49:34 +00:00
}
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' );
}
2011-06-08 18:56:59 +01:00
2011-05-19 08:48:58 +01:00
public function testToString ()
{
$cookie = new Cookie ( 'foo' , 'bar' , strtotime ( 'Fri, 20-May-2011 15:25:52 GMT' ), '/' , '.myfoodomain.com' , true );
2011-09-28 09:49:50 +01:00
$this -> assertEquals ( 'foo=bar; expires=Fri, 20-May-2011 15:25:52 GMT; domain=.myfoodomain.com; secure; httponly' , $cookie -> __toString (), '->__toString() returns string representation of the cookie' );
2011-06-08 18:56:59 +01:00
2011-09-28 09:49:50 +01:00
$cookie = new Cookie ( 'foo' , null , 1 , '/admin/' , '.myfoodomain.com' );
2011-06-08 18:56:59 +01:00
2011-09-28 09:49:50 +01:00
$this -> assertEquals ( 'foo=deleted; expires=' . gmdate ( " D, d-M-Y H:i:s T " , time () - 31536001 ) . '; path=/admin/; domain=.myfoodomain.com; httponly' , $cookie -> __toString (), '->__toString() returns string representation of a cleared cookie if value is NULL' );
2011-05-19 08:48:58 +01:00
}
2011-02-06 04:42:19 +00:00
}