/** * @dataProvider cookieParserDataProvider */ public function testParseCookie($cookie, $parsed) { foreach ((array) $cookie as $v) { $c = puzzle_cookie_SetCookie::fromString($v); $p = $c->toArray(); if (isset($p['Expires'])) { // Remove expires values from the assertion if they are relatively equal if (abs($p['Expires'] != strtotime($parsed['Expires'])) < 40) { unset($p['Expires']); unset($parsed['Expires']); } } if (!empty($parsed)) { foreach ($parsed as $key => $value) { $this->assertEquals($parsed[$key], $p[$key], 'Comparing ' . $key . ' ' . var_export($value, true) . ' : ' . var_export($parsed, true) . ' | ' . var_export($p, true)); } foreach ($p as $key => $value) { $this->assertEquals($p[$key], $parsed[$key], 'Comparing ' . $key . ' ' . var_export($value, true) . ' : ' . var_export($parsed, true) . ' | ' . var_export($p, true)); } } else { $this->assertEquals(array('Name' => null, 'Value' => null, 'Domain' => null, 'Path' => '/', 'Max-Age' => null, 'Expires' => null, 'Secure' => false, 'Discard' => false, 'HttpOnly' => false), $p); } } }
public function extractCookies(puzzle_message_RequestInterface $request, puzzle_message_ResponseInterface $response) { if ($cookieHeader = $response->getHeader('Set-Cookie', true)) { foreach ($cookieHeader as $cookie) { $sc = puzzle_cookie_SetCookie::fromString($cookie); if (!$sc->getDomain()) { $sc->setDomain($request->getHost()); } $this->setCookie($sc); } } }