Skip to content
Permalink
Browse files

Fix missing expiry times on cookies.

When writing multiple cookies in a single request with the default
expiry time, cookies after the first should continue to have the default
expiry time used.

Fixes #3965
  • Loading branch information...
markstory committed Aug 7, 2013
1 parent 3f186d6 commit 9efad54e31998ecb64015774b1351260ad0f3110
@@ -421,7 +421,7 @@ protected function _write($name, $value) {
'httpOnly' => $this->httpOnly
));
if (!is_null($this->_reset)) {
if (!empty($this->_reset)) {
$this->_expires = $this->_reset;
$this->_reset = null;
}
@@ -203,6 +203,24 @@ public function testWriteSimple() {
$this->assertEquals('value', $result);
}
/**
* test that two write() calls use the expiry.
*
* @return void
*/
public function testWriteMultipleShareExpiry() {
$this->Cookie->write('key1', 'value1', false);
$this->Cookie->write('key2', 'value2', false);
$name = $this->Cookie->name . '[key1]';
$result = $this->Controller->response->cookie($name);
$this->assertWithinMargin(time() + 10, $result['expire'], 2, 'Expiry time is wrong');
$name = $this->Cookie->name . '[key2]';
$result = $this->Controller->response->cookie($name);
$this->assertWithinMargin(time() + 10, $result['expire'], 2, 'Expiry time is wrong');
}
/**
* test write with distant future cookies
*

0 comments on commit 9efad54

Please sign in to comment.
You can’t perform that action at this time.