Completed
Push — master ( 202c6b...44894d )
by Andy
01:25
created

ResponseTest::testGetHeaders()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 22
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 13
nc 2
nop 0
dl 0
loc 22
rs 9.8333
c 1
b 0
f 0
1
<?php
2
3
namespace Palmtree\Curl\Tests;
4
5
use Palmtree\Curl\Response;
6
use PHPUnit\Framework\TestCase;
7
8
class ResponseTest extends TestCase
9
{
10
    public function testParse()
11
    {
12
        $headers = [
13
            'Date'          => 'Tue, 07 May 2019 11:30:00 GMT',
14
            'Expires'       => '-1',
15
            'Cache-Control' => 'private, max-age=0',
16
            'Content-Type'  => 'text/html; charset=utf-8',
17
            'Vary'          => 'Accept-Encoding',
18
        ];
19
20
        $rawResponse = 'HTTP/1.1 200 OK' . "\r\n";
21
22
        foreach ($headers as $key => $value) {
23
            $rawResponse .= "$key: $value\r\n";
24
        }
25
26
        $rawResponse .= "\r\nHello, World!";
27
28
        $response = new Response($rawResponse);
29
30
        foreach ($headers as $key => $value) {
31
            $this->assertSame($value, $response->getHeader($key));
32
        }
33
34
        $this->assertSame('Hello, World!', $response->getBody());
35
    }
36
37
    public function testParseHttpContinue()
38
    {
39
        $headers = [
40
            'Date'          => 'Tue, 07 May 2019 11:30:00 GMT',
41
            'Expires'       => '-1',
42
            'Cache-Control' => 'private, max-age=0',
43
            'Content-Type'  => 'text/html; charset=utf-8',
44
            'Vary'          => 'Accept-Encoding',
45
        ];
46
47
        $rawResponse = "HTTP/1.1 100 Continue\r\n\r\n";
48
49
        $rawResponse .= "HTTP/1.1 200 OK\r\n";
50
51
        foreach ($headers as $key => $value) {
52
            $rawResponse .= "$key: $value\r\n";
53
        }
54
55
        $rawResponse .= "\r\nHello, World!";
56
57
        $response = new Response($rawResponse);
58
59
        foreach ($headers as $key => $value) {
60
            $this->assertSame($value, $response->getHeader($key));
61
        }
62
63
        $this->assertSame('Hello, World!', $response->getBody());
64
    }
65
66
    public function testGetHeaders()
67
    {
68
        $headers = [
69
            'Date'          => 'Tue, 07 May 2019 11:30:00 GMT',
70
            'Expires'       => '-1',
71
            'Cache-Control' => 'private, max-age=0',
72
            'Content-Type'  => 'text/html; charset=utf-8',
73
            'Vary'          => 'Accept-Encoding',
74
        ];
75
76
        $rawResponse = 'HTTP/1.1 200 OK' . "\r\n";
77
78
        foreach ($headers as $key => $value) {
79
            $rawResponse .= "$key: $value\r\n";
80
        }
81
82
        $rawResponse .= "\r\nHello, World!";
83
84
        $response = new Response($rawResponse, 200);
85
86
        $this->assertIsArray($response->getHeaders());
87
        $this->assertSame($headers, $response->getHeaders());
88
    }
89
90
    public function testGetStatusCode()
91
    {
92
        $response = new Response('', 200);
93
94
        $this->assertSame(200, $response->getStatusCode());
95
    }
96
97
    public function testIsOk()
98
    {
99
        $response = new Response('', 200);
100
101
        $this->assertTrue($response->isOk());
102
    }
103
104
    public function testIs404()
105
    {
106
        $response = new Response('', 404);
107
108
        $this->assertTrue($response->is404());
109
    }
110
111
    public function testToString()
112
    {
113
        $response = new Response('Hello, World!');
114
115
        $this->assertSame('Hello, World!', (string)$response);
116
    }
117
}
118