/** * Sets a cookie. Used before a request to set up any individual * cookies. Used internally after a request to parse the * Set-Cookie headers. * @see Cookie::set * @param string $name * @param mixed $value * @param array $attr */ public function setCookie($name, $value = null, $attr = null) { if (!$this->cookieJar) { $this->cookieJar = new CookieJar(); } $this->cookieJar->setCookie($name, $value, $attr); }
function testCookieJarSetCookie() { $cj = new CookieJar(); $cj->setCookie("name", "value", array("domain" => ".example.com", "path" => "/path/")); $cj->setCookie("name2", "value", array("domain" => ".example.com", "path" => "/path/sub")); $cj->setCookie("name3", "value", array("domain" => ".example.com", "path" => "/")); $cj->setCookie("name4", "value", array("domain" => ".example.net", "path" => "/path/")); $cj->setCookie("name5", "value", array("domain" => ".example.net", "path" => "/path/", "expires" => "-1 day")); $this->assertEquals("name4=value", $cj->serializeToHttpRequest("/path/", "www.example.net")); $this->assertEquals("name3=value", $cj->serializeToHttpRequest("/", "www.example.com")); $this->assertEquals("name=value; name3=value", $cj->serializeToHttpRequest("/path/", "www.example.com")); $cj->setCookie("name5", "value", array("domain" => ".example.net", "path" => "/path/", "expires" => "+1 day")); $this->assertEquals("name4=value; name5=value", $cj->serializeToHttpRequest("/path/", "www.example.net")); $cj->setCookie("name4", "value", array("domain" => ".example.net", "path" => "/path/", "expires" => "-1 day")); $this->assertEquals("name5=value", $cj->serializeToHttpRequest("/path/", "www.example.net")); }
function testCookieClearByDate() { $jar = new CookieJar(); $jar->setCookie(new SimpleCookie("a", "abc", "/", "Wed, 25-Dec-02 04:24:21 GMT")); $jar->setCookie(new SimpleCookie("a", "def", "/", "Wed, 25-Dec-02 04:24:19 GMT")); $cookies = $jar->getValidCookies(false, "/"); $this->assertIdentical($cookies[0]->getValue(), "def"); $jar->restartSession("Wed, 25-Dec-02 04:24:20 GMT"); $this->assertEqual(count($jar->getValidCookies(false, "/")), 0); }
function testCookieClearing() { $jar = new CookieJar(); $jar->setCookie(new SimpleCookie("a", "abc", "/")); $jar->setCookie(new SimpleCookie("a", "", "/")); $this->assertEqual(count($cookies = $jar->getValidCookies(false, "/")), 1); $this->assertIdentical($cookies[0]->getValue(), ""); }