~canonical-sysadmins/wordpress/openstack-objectstorage-k8s

« back to all changes in this revision

Viewing changes to vendor/guzzlehttp/guzzle/tests/Subscriber/CookieTest.php

  • Committer: Jacek Nykis
  • Date: 2015-02-11 15:35:31 UTC
  • Revision ID: jacek.nykis@canonical.com-20150211153531-hmy6zi0ov2qfkl0b
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
}