Open Monograph Press  3.3.0
CookiePluginTest.php
1 <?php
2 
4 
11 
17 {
18  public function testExtractsAndStoresCookies()
19  {
20  $response = new Response(200);
21  $mock = $this->getMockBuilder('Guzzle\Plugin\Cookie\CookieJar\ArrayCookieJar')
22  ->setMethods(array('addCookiesFromResponse'))
23  ->getMock();
24 
25  $mock->expects($this->exactly(1))
26  ->method('addCookiesFromResponse')
27  ->with($response);
28 
29  $plugin = new CookiePlugin($mock);
30  $plugin->onRequestSent(new Event(array(
31  'response' => $response
32  )));
33  }
34 
35  public function testAddsCookiesToRequests()
36  {
37  $cookie = new Cookie(array(
38  'name' => 'foo',
39  'value' => 'bar'
40  ));
41 
42  $mock = $this->getMockBuilder('Guzzle\Plugin\Cookie\CookieJar\ArrayCookieJar')
43  ->setMethods(array('getMatchingCookies'))
44  ->getMock();
45 
46  $mock->expects($this->once())
47  ->method('getMatchingCookies')
48  ->will($this->returnValue(array($cookie)));
49 
50  $plugin = new CookiePlugin($mock);
51 
52  $client = new Client();
53  $client->getEventDispatcher()->addSubscriber($plugin);
54 
55  $request = $client->get('http://www.example.com');
56  $plugin->onRequestBeforeSend(new Event(array(
57  'request' => $request
58  )));
59 
60  $this->assertEquals('bar', $request->getCookie('foo'));
61  }
62 
64  {
65  $plugin = new CookiePlugin(new ArrayCookieJar());
66  $this->getServer()->flush();
67  $this->getServer()->enqueue(array(
68  "HTTP/1.1 302 Moved Temporarily\r\n" .
69  "Set-Cookie: test=583551; expires=Wednesday, 23-Mar-2050 19:49:45 GMT; path=/\r\n" .
70  "Location: /redirect\r\n\r\n",
71  "HTTP/1.1 200 OK\r\n" .
72  "Content-Length: 0\r\n\r\n",
73  "HTTP/1.1 200 OK\r\n" .
74  "Content-Length: 0\r\n\r\n"
75  ));
76 
77  $client = new Client($this->getServer()->getUrl());
78  $client->getEventDispatcher()->addSubscriber($plugin);
79 
80  $client->get()->send();
81  $request = $client->get();
82  $request->send();
83  $this->assertEquals('test=583551', $request->getHeader('Cookie'));
84 
85  $requests = $this->getServer()->getReceivedRequests(true);
86  // Confirm subsequent requests have the cookie.
87  $this->assertEquals('test=583551', $requests[2]->getHeader('Cookie'));
88  // Confirm the redirected request has the cookie.
89  $this->assertEquals('test=583551', $requests[1]->getHeader('Cookie'));
90  }
91 
93  {
94  $jar = new ArrayCookieJar();
95  $plugin = new CookiePlugin($jar);
96 
97  $jar->add(new Cookie(array(
98  'domain' => 'example.com',
99  'path' => '/',
100  'name' => 'test',
101  'value' => 'hi',
102  'expires' => time() + 3600
103  )));
104 
105  $client = new Client('http://example.com');
106  $client->getEventDispatcher()->addSubscriber($plugin);
107 
108  // Ensure that it is normally added
109  $request = $client->get();
110  $request->setResponse(new Response(200), true);
111  $request->send();
112  $this->assertEquals('hi', $request->getCookie('test'));
113 
114  // Now ensure that it is not added
115  $request = $client->get();
116  $request->getParams()->set('cookies.disable', true);
117  $request->setResponse(new Response(200), true);
118  $request->send();
119  $this->assertNull($request->getCookie('test'));
120  }
121 
122  public function testProvidesCookieJar()
123  {
124  $jar = new ArrayCookieJar();
125  $plugin = new CookiePlugin($jar);
126  $this->assertSame($jar, $plugin->getCookieJar());
127  }
128 
129  public function testEscapesCookieDomains()
130  {
131  $cookie = new Cookie(array('domain' => '/foo/^$[A-Z]+/'));
132  $this->assertFalse($cookie->matchesDomain('foo'));
133  }
134 }
Guzzle\Tests\Plugin\Cookie\CookiePluginTest
Definition: CookiePluginTest.php:16
Guzzle\Tests\GuzzleTestCase
Definition: GuzzleTestCase.php:22
Guzzle\Plugin\Cookie\CookiePlugin
Definition: CookiePlugin.php:13
Guzzle\Http\Message\Response
Definition: paymethod/paypal/lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php:17
Guzzle\Tests\Plugin\Cookie\CookiePluginTest\testCookiesAreExtractedFromRedirectResponses
testCookiesAreExtractedFromRedirectResponses()
Definition: CookiePluginTest.php:63
Guzzle\Tests\Plugin\Cookie\CookiePluginTest\testExtractsAndStoresCookies
testExtractsAndStoresCookies()
Definition: CookiePluginTest.php:18
Guzzle\Plugin\Cookie\Cookie
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Plugin/Cookie/Cookie.php:10
Guzzle\Common\Event
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Common/Event.php:10
Guzzle\Tests\Plugin\Cookie\CookiePluginTest\testCookiesAreNotAddedWhenParamIsSet
testCookiesAreNotAddedWhenParamIsSet()
Definition: CookiePluginTest.php:92
Guzzle\Http\Client
Definition: paymethod/paypal/lib/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php:24
Guzzle\Plugin\Cookie\CookieJar\ArrayCookieJar
Definition: ArrayCookieJar.php:14
Guzzle\Tests\GuzzleTestCase\getServer
static getServer()
Definition: GuzzleTestCase.php:36
Guzzle\Tests\Plugin\Cookie\CookiePluginTest\testEscapesCookieDomains
testEscapesCookieDomains()
Definition: CookiePluginTest.php:129
Guzzle\Tests\Plugin\Cookie\CookiePluginTest\testAddsCookiesToRequests
testAddsCookiesToRequests()
Definition: CookiePluginTest.php:35
Guzzle\Tests\Plugin\Cookie
Guzzle\Tests\Plugin\Cookie\CookiePluginTest\testProvidesCookieJar
testProvidesCookieJar()
Definition: CookiePluginTest.php:122