scratch – Blame information for rev 87

Subversion Repositories:
Rev:
Rev Author Line No. Line
87 office 1 <?php
2  
3 namespace GuzzleHttp\Tests\Subscriber;
4  
5 use GuzzleHttp\Adapter\Transaction;
6 use GuzzleHttp\Client;
7 use GuzzleHttp\Cookie\CookieJar;
8 use GuzzleHttp\Event\CompleteEvent;
9 use GuzzleHttp\Message\Request;
10 use GuzzleHttp\Message\Response;
11 use GuzzleHttp\Subscriber\Cookie;
12 use GuzzleHttp\Subscriber\History;
13 use GuzzleHttp\Subscriber\Mock;
14  
15 /**
16 * @covers GuzzleHttp\Subscriber\Cookie
17 */
18 class CookieTest extends \PHPUnit_Framework_TestCase
19 {
20 public function testExtractsAndStoresCookies()
21 {
22 $request = new Request('GET', '/');
23 $response = new Response(200);
24 $mock = $this->getMockBuilder('GuzzleHttp\Cookie\CookieJar')
25 ->setMethods(array('extractCookies'))
26 ->getMock();
27  
28 $mock->expects($this->exactly(1))
29 ->method('extractCookies')
30 ->with($request, $response);
31  
32 $plugin = new Cookie($mock);
33 $t = new Transaction(new Client(), $request);
34 $t->setResponse($response);
35 $plugin->onComplete(new CompleteEvent($t));
36 }
37  
38 public function testProvidesCookieJar()
39 {
40 $jar = new CookieJar();
41 $plugin = new Cookie($jar);
42 $this->assertSame($jar, $plugin->getCookieJar());
43 }
44  
45 public function testCookiesAreExtractedFromRedirectResponses()
46 {
47 $jar = new CookieJar();
48 $cookie = new Cookie($jar);
49 $history = new History();
50 $mock = new Mock([
51 "HTTP/1.1 302 Moved Temporarily\r\n" .
52 "Set-Cookie: test=583551; Domain=www.foo.com; Expires=Wednesday, 23-Mar-2050 19:49:45 GMT; Path=/\r\n" .
53 "Location: /redirect\r\n\r\n",
54 "HTTP/1.1 200 OK\r\n" .
55 "Content-Length: 0\r\n\r\n",
56 "HTTP/1.1 200 OK\r\n" .
57 "Content-Length: 0\r\n\r\n"
58 ]);
59 $client = new Client(['base_url' => 'http://www.foo.com']);
60 $client->getEmitter()->attach($cookie);
61 $client->getEmitter()->attach($mock);
62 $client->getEmitter()->attach($history);
63  
64 $client->get();
65 $request = $client->createRequest('GET', '/');
66 $client->send($request);
67  
68 $this->assertEquals('test=583551', $request->getHeader('Cookie'));
69 $requests = $history->getRequests();
70 // Confirm subsequent requests have the cookie.
71 $this->assertEquals('test=583551', $requests[2]->getHeader('Cookie'));
72 // Confirm the redirected request has the cookie.
73 $this->assertEquals('test=583551', $requests[1]->getHeader('Cookie'));
74 }
75 }