Skip to content

Commit bda9fa0

Browse files
author
Peter Bouwdewijn
committed
Fix #67 Fixed Cookie creation in cookie plugin.
Fix applied by calculating the expireIn (max-age) seconds instead of expire datetime. Expanded save spec by using a more complete cookie. Use DATE_COOKIE constant instead of DateTime constant. Expand the cookie header content with all parts.
1 parent 741f0c4 commit bda9fa0

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

spec/CookiePluginSpec.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,12 @@ function it_saves_cookie(RequestInterface $request, ResponseInterface $response,
146146

147147
$response->hasHeader('Set-Cookie')->willReturn(true);
148148
$response->getHeader('Set-Cookie')->willReturn([
149-
'cookie=value',
149+
sprintf(
150+
'cookie=value; expires=%s; Max-Age=60; path=/; domain=test.com; secure; HttpOnly',
151+
(new \DateTime())->add(
152+
new \DateInterval('PT60S')
153+
)->format(DATE_COOKIE)
154+
)
150155
]);
151156

152157
$request->getUri()->willReturn($uri);

src/CookiePlugin.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,12 @@ private function createCookie(RequestInterface $request, $setCookie)
109109

110110
switch (strtolower($key)) {
111111
case 'expires':
112-
$expires = \DateTime::createFromFormat(DATE_COOKIE, $value);
112+
$expires = \DateTime::createFromFormat(DATE_COOKIE, $value)->getTimestamp()
113+
- (new \DateTime())->getTimestamp();
113114
break;
114115

115116
case 'max-age':
116-
$expires = (new \DateTime())->add(new \DateInterval('PT'.(int) $value.'S'));
117+
$expires = (int) $value;
117118
break;
118119

119120
case 'domain':

0 commit comments

Comments
 (0)