public function testSetCookieFromStringCanCreateMultipleHeaders() { $setCookieHeaders = SetCookie::fromString('Set-Cookie: myname=myvalue, ' . 'someothername=someothervalue; Domain=docs.foo.com; Path=/accounts;' . 'Expires=Wed, 13-Jan-2021 22:23:01 GMT; Secure; HttpOnly'); $this->assertInternalType('array', $setCookieHeaders); $setCookieHeader = $setCookieHeaders[0]; $this->assertInstanceOf('Zend\\Http\\Header\\MultipleHeaderDescription', $setCookieHeader); $this->assertEquals('myname', $setCookieHeader->getName()); $this->assertEquals('myvalue', $setCookieHeader->getValue()); $setCookieHeader = $setCookieHeaders[1]; $this->assertInstanceOf('Zend\\Http\\Header\\MultipleHeaderDescription', $setCookieHeader); $this->assertEquals('someothername', $setCookieHeader->getName()); $this->assertEquals('someothervalue', $setCookieHeader->getValue()); $this->assertEquals('Wed, 13-Jan-2021 22:23:01 GMT', $setCookieHeader->getExpires()); $this->assertEquals('docs.foo.com', $setCookieHeader->getDomain()); $this->assertEquals('/accounts', $setCookieHeader->getPath()); $this->assertTrue($setCookieHeader->isSecure()); $this->assertTrue($setCookieHeader->isHttponly()); }
/** * Add a cookie to the class. Cookie should be passed either as a Zend\Http\Header\Cookie object * or as a string - in which case an object is created from the string. * * @param SetCookie|string $cookie * @param Uri\Uri|string $refUri Optional reference URI (for domain, path, secure) * @throws Exception\InvalidArgumentException */ public function addCookie($cookie, $refUri = null) { if (is_string($cookie)) { $cookie = SetCookie::fromString($cookie, $refUri); } if ($cookie instanceof SetCookie) { $domain = $cookie->getDomain(); $path = $cookie->getPath(); if (!isset($this->cookies[$domain])) { $this->cookies[$domain] = array(); } if (!isset($this->cookies[$domain][$path])) { $this->cookies[$domain][$path] = array(); } $this->cookies[$domain][$path][$cookie->getName()] = $cookie; $this->rawCookies[] = $cookie; } else { throw new Exception\InvalidArgumentException('Supplient argument is not a valid cookie string or object'); } }
/** * @dataProvider validCookieWithInfoProvider */ public function testToString($cStr, $info, $expected) { $cookie = SetCookie::fromString($cStr); if (! $cookie instanceof SetCookie) { $this->fail("Failed creating a cookie object from '$cStr'"); } $this->assertEquals($cookie->getFieldName() . ': ' . $expected, $cookie->toString()); }
/** * @group ZF2-169 */ public function testDoesNotAcceptCookieNameFromArbitraryLocationInHeaderValue() { $cookie = 'Set-Cookie: Version=1; Max-Age=1799; Expires=Mon, 20-Feb-2012 02:49:57 GMT; Path=/; leo_auth_token="example"'; $setCookieHeader = SetCookie::fromString($cookie); $this->assertNotEquals('leo_auth_token', $setCookieHeader->getName()); }
/** * ZF2-169 * * @see http://framework.zend.com/issues/browse/ZF2-169 */ public function testZF2_169() { $cookie = 'Set-Cookie: leo_auth_token="example"; Version=1; Max-Age=1799; Expires=Mon, 20-Feb-2012 02:49:57 GMT; Path=/'; $setCookieHeader = SetCookie::fromString($cookie); $this->assertEquals($cookie, $setCookieHeader->toString()); }