ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
MessageTest.php
Go to the documentation of this file.
1<?php
2
3namespace Sabre\HTTP;
4
6
7 function testConstruct() {
8
9 $message = new MessageMock();
10 $this->assertInstanceOf('Sabre\HTTP\Message', $message);
11
12 }
13
14 function testStreamBody() {
15
16 $body = 'foo';
17 $h = fopen('php://memory', 'r+');
18 fwrite($h, $body);
19 rewind($h);
20
21 $message = new MessageMock();
22 $message->setBody($h);
23
24 $this->assertEquals($body, $message->getBodyAsString());
25 rewind($h);
26 $this->assertEquals($body, stream_get_contents($message->getBodyAsStream()));
27 rewind($h);
28 $this->assertEquals($body, stream_get_contents($message->getBody()));
29
30 }
31
32 function testStringBody() {
33
34 $body = 'foo';
35
36 $message = new MessageMock();
37 $message->setBody($body);
38
39 $this->assertEquals($body, $message->getBodyAsString());
40 $this->assertEquals($body, stream_get_contents($message->getBodyAsStream()));
41 $this->assertEquals($body, $message->getBody());
42
43 }
44
57
58 $body = fopen('php://memory', 'r+');
59 fwrite($body, 'abcdefg');
60 fseek($body, 2);
61
62 $message = new MessageMock();
63 $message->setBody($body);
64 $message->setHeader('Content-Length', '4');
65
66 $this->assertEquals(
67 'cdef',
68 $message->getBodyAsString()
69 );
70
71 }
72
78
79 $body = fopen('php://memory', 'r+');
80 fwrite($body, 'abcdefg');
81 fseek($body, 2);
82
83 $message = new MessageMock();
84 $message->setBody($body);
85 $message->setHeader('Content-Length', '');
86
87 $this->assertEquals(
88 'cdefg',
89 $message->getBodyAsString()
90 );
91
92 }
93
94
96
97 $message = new MessageMock();
98 $body = $message->getBodyAsStream();
99
100 $this->assertEquals('', stream_get_contents($body));
101
102 }
103
105
106 $message = new MessageMock();
107 $body = $message->getBodyAsString();
108
109 $this->assertEquals('', $body);
110
111 }
112
113 function testHeaders() {
114
115 $message = new MessageMock();
116 $message->setHeader('X-Foo', 'bar');
117
118 // Testing caselessness
119 $this->assertEquals('bar', $message->getHeader('X-Foo'));
120 $this->assertEquals('bar', $message->getHeader('x-fOO'));
121
122 $this->assertTrue(
123 $message->removeHeader('X-FOO')
124 );
125 $this->assertNull($message->getHeader('X-Foo'));
126 $this->assertFalse(
127 $message->removeHeader('X-FOO')
128 );
129
130 }
131
132 function testSetHeaders() {
133
134 $message = new MessageMock();
135
136 $headers = [
137 'X-Foo' => ['1'],
138 'X-Bar' => ['2'],
139 ];
140
141 $message->setHeaders($headers);
142 $this->assertEquals($headers, $message->getHeaders());
143
144 $message->setHeaders([
145 'X-Foo' => ['3', '4'],
146 'X-Bar' => '5',
147 ]);
148
149 $expected = [
150 'X-Foo' => ['3','4'],
151 'X-Bar' => ['5'],
152 ];
153
154 $this->assertEquals($expected, $message->getHeaders());
155
156 }
157
158 function testAddHeaders() {
159
160 $message = new MessageMock();
161
162 $headers = [
163 'X-Foo' => ['1'],
164 'X-Bar' => ['2'],
165 ];
166
167 $message->addHeaders($headers);
168 $this->assertEquals($headers, $message->getHeaders());
169
170 $message->addHeaders([
171 'X-Foo' => ['3', '4'],
172 'X-Bar' => '5',
173 ]);
174
175 $expected = [
176 'X-Foo' => ['1','3','4'],
177 'X-Bar' => ['2','5'],
178 ];
179
180 $this->assertEquals($expected, $message->getHeaders());
181
182 }
183
184 function testSendBody() {
185
186 $message = new MessageMock();
187
188 // String
189 $message->setBody('foo');
190
191 // Stream
192 $h = fopen('php://memory', 'r+');
193 fwrite($h, 'bar');
194 rewind($h);
195 $message->setBody($h);
196
197 $body = $message->getBody();
198 rewind($body);
199
200 $this->assertEquals('bar', stream_get_contents($body));
201
202 }
203
205
206 $message = new MessageMock();
207 $message->setHeader('a', '1');
208 $message->addHeader('A', '2');
209
210 $this->assertEquals(
211 "1,2",
212 $message->getHeader('A')
213 );
214 $this->assertEquals(
215 "1,2",
216 $message->getHeader('a')
217 );
218
219 $this->assertEquals(
220 ['1', '2'],
221 $message->getHeaderAsArray('a')
222 );
223 $this->assertEquals(
224 ['1', '2'],
225 $message->getHeaderAsArray('A')
226 );
227 $this->assertEquals(
228 [],
229 $message->getHeaderAsArray('B')
230 );
231
232 }
233
234 function testHasHeaders() {
235
236 $message = new MessageMock();
237
238 $this->assertFalse($message->hasHeader('X-Foo'));
239 $message->setHeader('X-Foo', 'Bar');
240 $this->assertTrue($message->hasHeader('X-Foo'));
241
242 }
243
244}
245
246class MessageMock extends Message { }
An exception for terminatinating execution or to throw for unit testing.
testLongStreamToStringBody()
It's possible that streams contains more data than the Content-Length.
Definition: MessageTest.php:56
testEmptyContentLengthHeader()
Some clients include a content-length header, but the header is empty.
Definition: MessageTest.php:77
This is the abstract base class for both the Request and Response objects.
Definition: Message.php:14
$h
catch(Exception $e) $message