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.

References $message.

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

◆ testConstruct()

Sabre\HTTP\MessageTest::testConstruct ( )

Definition at line 7 of file MessageTest.php.

References $message.

7  {
8 
9  $message = new MessageMock();
10  $this->assertInstanceOf('Sabre\HTTP\Message', $message);
11 
12  }
catch(Exception $e) $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.

References $message.

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

◆ testGetEmptyBodyStream()

Sabre\HTTP\MessageTest::testGetEmptyBodyStream ( )

Definition at line 95 of file MessageTest.php.

References $message.

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

◆ testGetEmptyBodyString()

Sabre\HTTP\MessageTest::testGetEmptyBodyString ( )

Definition at line 104 of file MessageTest.php.

References $message.

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

◆ testHasHeaders()

Sabre\HTTP\MessageTest::testHasHeaders ( )

Definition at line 234 of file MessageTest.php.

References $message.

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

◆ testHeaders()

Sabre\HTTP\MessageTest::testHeaders ( )

Definition at line 113 of file MessageTest.php.

References $message.

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  }
catch(Exception $e) $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.

References $message.

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

◆ testMultipleHeaders()

Sabre\HTTP\MessageTest::testMultipleHeaders ( )

Definition at line 204 of file MessageTest.php.

References $message.

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

◆ testSendBody()

Sabre\HTTP\MessageTest::testSendBody ( )

Definition at line 184 of file MessageTest.php.

References $h, and $message.

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

◆ testSetHeaders()

Sabre\HTTP\MessageTest::testSetHeaders ( )

Definition at line 132 of file MessageTest.php.

References $message.

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

◆ testStreamBody()

Sabre\HTTP\MessageTest::testStreamBody ( )

Definition at line 14 of file MessageTest.php.

References $h, and $message.

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

◆ testStringBody()

Sabre\HTTP\MessageTest::testStringBody ( )

Definition at line 32 of file MessageTest.php.

References $message.

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

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