private function setRequestCookies(\Guzzle\Http\Message\Request $request) { if (!is_null($request->getCookies())) { foreach ($request->getCookies() as $name => $value) { $request->removeCookie($name); } } $cookieUrlMatcher = new \webignition\Cookie\UrlMatcher\UrlMatcher(); foreach ($this->getConfiguration()->getCookies() as $cookie) { if ($cookieUrlMatcher->isMatch($cookie, $request->getUrl())) { $request->addCookie($cookie['name'], $cookie['value']); } } }
/** * @covers Guzzle\Http\Message\Request */ public function testHoldsCookies() { $this->assertNull($this->request->getCookie('test')); // Set a cookie $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->assertEquals('abc', $this->request->getCookie('test')); // Multiple cookies by setting the Cookie header $this->request->setHeader('Cookie', '__utma=1.638370270.1344367610.1374365610.1944450276.2; __utmz=1.1346368610.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); hl=de; PHPSESSID=ak93pqashi5uubuoq8fjv60897'); $this->assertEquals('1.638370270.1344367610.1374365610.1944450276.2', $this->request->getCookie('__utma')); $this->assertEquals('1.1346368610.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', $this->request->getCookie('__utmz')); $this->assertEquals('de', $this->request->getCookie('hl')); $this->assertEquals('ak93pqashi5uubuoq8fjv60897', $this->request->getCookie('PHPSESSID')); // Unset the cookies by setting the Cookie header to null $this->request->setHeader('Cookie', null); $this->assertNull($this->request->getCookie('test')); $this->request->removeHeader('Cookie'); // Set and remove a cookie $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->assertEquals('abc', $this->request->getCookie('test')); $this->assertSame($this->request, $this->request->removeCookie('test')); $this->assertNull($this->request->getCookie('test')); // Remove the cookie header $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->request->removeHeader('Cookie'); $this->assertEquals('', (string) $this->request->getHeader('Cookie')); // Remove a cookie value $this->request->addCookie('foo', 'bar')->addCookie('baz', 'boo'); $this->request->removeCookie('foo'); $this->assertEquals(array('baz' => 'boo'), $this->request->getCookies()); $this->request->addCookie('foo', 'bar'); $this->assertEquals('baz=boo; foo=bar', (string) $this->request->getHeader('Cookie')); }
/** * @covers Guzzle\Http\Message\Request */ public function testHoldsCookies() { $this->assertNull($this->request->getCookie('test')); // Set a cookie $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->assertEquals('abc', $this->request->getCookie('test')); // Unset the cookies by setting the Cookie header to null $this->request->setHeader('Cookie', null); $this->assertNull($this->request->getCookie('test')); // Set and remove a cookie $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->assertEquals('abc', $this->request->getCookie('test')); $this->assertSame($this->request, $this->request->removeCookie('test')); $this->assertNull($this->request->getCookie('test')); // Remove the cookie header $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->request->removeHeader('Cookie'); $this->assertEquals('', (string) $this->request->getHeader('Cookie')); // Remove a cookie value $this->request->addCookie('foo', 'bar')->addCookie('baz', 'boo'); $this->request->removeCookie('foo'); $this->assertEquals(array('baz' => 'boo'), $this->request->getCookies()); }