mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-03 14:54:04 +01:00
61 lines
2.6 KiB
PHP
61 lines
2.6 KiB
PHP
<?php
|
|
|
|
class CHttpCookieTest extends CTestCase
|
|
{
|
|
/**
|
|
* @covers CHttpCookie::configure
|
|
* @covers CHttpCookie::__construct
|
|
*/
|
|
public function testConfigure()
|
|
{
|
|
//covers construct
|
|
$cookie=new CHttpCookie('name','value');
|
|
$this->assertEquals('name',$cookie->name,'Constructor failure. Name should have been set there');
|
|
$this->assertEquals('value',$cookie->value,'Constructor failure. Value should have been set there');
|
|
$this->assertEquals('',$cookie->domain,'Default value for CHttpCookie::$domain has been touched');
|
|
$this->assertEquals(0,$cookie->expire,'Default value for CHttpCookie::$expire has been touched');
|
|
$this->assertEquals('/',$cookie->path,'Default value for CHttpCookie::$path has been touched');
|
|
$this->assertFalse($cookie->secure,'Default value for CHttpCookie::$secure has been touched');
|
|
$this->assertFalse($cookie->httpOnly,'Default value for CHttpCookie::$httpOnly has been touched');
|
|
$this->assertEquals(CHttpCookie::SAME_SITE_LAX,$cookie->sameSite,'Default value for CHttpCookie::$sameSite has been touched');
|
|
$options=array(
|
|
'expire'=>123123,
|
|
'httpOnly'=>true,
|
|
'sameSite'=>CHttpCookie::SAME_SITE_STRICT
|
|
);
|
|
// create cookie with options
|
|
$cookie2=new CHttpCookie('name2','value2',$options);
|
|
$this->assertEquals($options['expire'],$cookie2->expire,'Configure inside the Constructor has been failed');
|
|
$this->assertEquals($options['httpOnly'],$cookie2->httpOnly,'Configure inside the Constructor has been failed');
|
|
$this->assertEquals($options['sameSite'],$cookie2->sameSite,'Configure inside the Constructor has been failed');
|
|
//configure afterwards
|
|
$cookie->configure($options);
|
|
$this->assertEquals($options['expire'],$cookie->expire);
|
|
$this->assertEquals($options['httpOnly'],$cookie->httpOnly);
|
|
$this->assertEquals($options['sameSite'],$cookie->sameSite);
|
|
// Set name and value via configure (should have no effect)
|
|
$name=$cookie->name;
|
|
$cookie->configure(array('name'=>'someNewName'));
|
|
$this->assertEquals($name,$cookie->name);
|
|
$value=$cookie->value;
|
|
$cookie->configure(array('value'=>'someNewValue'));
|
|
$this->assertEquals($value,$cookie->value);
|
|
//new configure should not override already set configuration
|
|
$this->assertEquals($options['httpOnly'],$cookie->httpOnly);
|
|
}
|
|
/**
|
|
* @covers CHttpCookie::__toString
|
|
*/
|
|
public function test__ToString()
|
|
{
|
|
$cookie=new CHttpCookie('name','someValue');
|
|
// Note on https://www.php.net/manual/en/language.oop5.magic.php#object.tostring
|
|
ob_start();
|
|
echo $cookie;
|
|
$this->assertEquals(ob_get_clean(),$cookie->value);
|
|
if(version_compare(PHP_VERSION,'5.2','>='))
|
|
{
|
|
$this->assertEquals($cookie->value,(string)$cookie);
|
|
}
|
|
}
|
|
} |