ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
Sabre\HTTP\MessageTest Class Reference
+ Inheritance diagram for Sabre\HTTP\MessageTest:
+ Collaboration diagram for Sabre\HTTP\MessageTest:

Public Member Functions

 testConstruct ()
 
 testStreamBody ()
 
 testStringBody ()
 
 testLongStreamToStringBody ()
 It's possible that streams contains more data than the Content-Length. More...
 
 testEmptyContentLengthHeader ()
 Some clients include a content-length header, but the header is empty. More...
 
 testGetEmptyBodyStream ()
 
 testGetEmptyBodyString ()
 
 testHeaders ()
 
 testSetHeaders ()
 
 testAddHeaders ()
 
 testSendBody ()
 
 testMultipleHeaders ()
 
 testHasHeaders ()
 

Detailed Description

Definition at line 5 of file MessageTest.php.

Member Function Documentation

◆ testAddHeaders()

Sabre\HTTP\MessageTest::testAddHeaders ( )

Definition at line 158 of file MessageTest.php.

158 {
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 }
catch(Exception $e) $message

References $message.

◆ testConstruct()

Sabre\HTTP\MessageTest::testConstruct ( )

Definition at line 7 of file MessageTest.php.

7 {
8
9 $message = new MessageMock();
10 $this->assertInstanceOf('Sabre\HTTP\Message', $message);
11
12 }

References $message.

◆ testEmptyContentLengthHeader()

Sabre\HTTP\MessageTest::testEmptyContentLengthHeader ( )

Some clients include a content-length header, but the header is empty.

This is definitely broken behavior, but we should support it.

Definition at line 77 of file MessageTest.php.

77 {
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 }

References $message.

◆ testGetEmptyBodyStream()

Sabre\HTTP\MessageTest::testGetEmptyBodyStream ( )

Definition at line 95 of file MessageTest.php.

95 {
96
97 $message = new MessageMock();
98 $body = $message->getBodyAsStream();
99
100 $this->assertEquals('', stream_get_contents($body));
101
102 }

References $message.

◆ testGetEmptyBodyString()

Sabre\HTTP\MessageTest::testGetEmptyBodyString ( )

Definition at line 104 of file MessageTest.php.

104 {
105
106 $message = new MessageMock();
107 $body = $message->getBodyAsString();
108
109 $this->assertEquals('', $body);
110
111 }

References $message.

◆ testHasHeaders()

Sabre\HTTP\MessageTest::testHasHeaders ( )

Definition at line 234 of file MessageTest.php.

234 {
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 }

References $message.

◆ testHeaders()

Sabre\HTTP\MessageTest::testHeaders ( )

Definition at line 113 of file MessageTest.php.

113 {
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 }

References $message.

◆ testLongStreamToStringBody()

Sabre\HTTP\MessageTest::testLongStreamToStringBody ( )

It's possible that streams contains more data than the Content-Length.

The request object should make sure to never emit more than Content-Length, if Content-Length is set.

This is in particular useful when respoding to range requests with streams that represent files on the filesystem, as it's possible to just seek the stream to a certain point, set the content-length and let the request object do the rest.

Definition at line 56 of file MessageTest.php.

56 {
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 }

References $message.

◆ testMultipleHeaders()

Sabre\HTTP\MessageTest::testMultipleHeaders ( )

Definition at line 204 of file MessageTest.php.

204 {
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 }

References $message.

◆ testSendBody()

Sabre\HTTP\MessageTest::testSendBody ( )

Definition at line 184 of file MessageTest.php.

184 {
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 }
$h

References $h, and $message.

◆ testSetHeaders()

Sabre\HTTP\MessageTest::testSetHeaders ( )

Definition at line 132 of file MessageTest.php.

132 {
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 }

References $message.

◆ testStreamBody()

Sabre\HTTP\MessageTest::testStreamBody ( )

Definition at line 14 of file MessageTest.php.

14 {
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 }

References $h, and $message.

◆ testStringBody()

Sabre\HTTP\MessageTest::testStringBody ( )

Definition at line 32 of file MessageTest.php.

32 {
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 }

References $message.


The documentation for this class was generated from the following file: