‪TYPO3CMS  9.5
StreamTest.php
Go to the documentation of this file.
1 <?php
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
16 
19 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
20 
26 class ‪StreamTest extends UnitTestCase
27 {
31  protected ‪$stream;
32 
33  protected function ‪setUp()
34  {
35  $this->stream = new ‪Stream('php://memory', 'wb+');
36  }
37 
42  {
43  $this->assertInstanceOf(Stream::class, $this->stream);
44  }
45 
49  public function ‪canInstantiteWithStreamResource()
50  {
51  $resource = fopen('php://memory', 'wb+');
52  ‪$stream = new Stream($resource);
53  $this->assertInstanceOf(Stream::class, ‪$stream);
54  }
55 
60  {
61  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
62  touch($fileName);
63  $this->testFilesToDelete[] = $fileName;
64  ‪$stream = new Stream($fileName, 'w');
65  $this->assertFalse(‪$stream->‪isReadable());
66  }
67 
72  {
73  ‪$stream = new Stream('php://memory', 'r');
74  $this->assertFalse(‪$stream->‪isWritable());
75  }
76 
81  {
82  $message = 'foo bar';
83  $this->stream->write($message);
84  $this->assertEquals($message, (string)$this->stream);
85  }
86 
90  public function ‪detachReturnsResource()
91  {
92  $resource = fopen('php://memory', 'wb+');
93  ‪$stream = new Stream($resource);
94  $this->assertSame($resource, ‪$stream->‪detach());
95  }
96 
101  {
102  $this->expectException(\InvalidArgumentException::class);
103  new Stream([' THIS WILL NOT WORK ']);
104  }
105 
110  {
111  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
112  touch($fileName);
113  $this->testFilesToDelete[] = $fileName;
114  file_put_contents($fileName, 'FOO BAR');
115  ‪$stream = new Stream($fileName, 'w');
116 
117  $this->assertEquals('', ‪$stream->‪__toString());
118  }
119 
123  public function ‪closeClosesResource()
124  {
125  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
126  touch($fileName);
127  $this->testFilesToDelete[] = $fileName;
128  $resource = fopen($fileName, 'wb+');
129  ‪$stream = new Stream($resource);
130  ‪$stream->‪close();
131  $this->assertFalse(is_resource($resource));
132  }
133 
137  public function ‪closeUnsetsResource()
138  {
139  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
140  touch($fileName);
141  $this->testFilesToDelete[] = $fileName;
142  $resource = fopen($fileName, 'wb+');
143  ‪$stream = new Stream($resource);
144  ‪$stream->‪close();
145 
146  $this->assertNull(‪$stream->‪detach());
147  }
148 
152  public function ‪closeDoesNothingAfterDetach()
153  {
154  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
155  touch($fileName);
156  $this->testFilesToDelete[] = $fileName;
157  $resource = fopen($fileName, 'wb+');
158  ‪$stream = new Stream($resource);
159  $detached = ‪$stream->‪detach();
160 
161  ‪$stream->‪close();
162  $this->assertTrue(is_resource($detached));
163  $this->assertSame($resource, $detached);
164  }
165 
170  {
171  $this->stream->detach();
172  $this->assertNull($this->stream->getSize());
173  }
174 
179  {
180  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
181  $this->testFilesToDelete[] = $fileName;
182  file_put_contents($fileName, 'FOO BAR');
183  $resource = fopen($fileName, 'wb+');
184  ‪$stream = new Stream($resource);
185 
186  fseek($resource, 2);
187 
188  $this->assertEquals(2, ‪$stream->‪tell());
189  }
190 
195  {
196  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
197  $this->testFilesToDelete[] = $fileName;
198  file_put_contents($fileName, 'FOO BAR');
199  $resource = fopen($fileName, 'wb+');
200  ‪$stream = new Stream($resource);
201 
202  fseek($resource, 2);
204  $this->expectException(\RuntimeException::class);
205  $this->expectExceptionCode(1436717285);
206  ‪$stream->‪tell();
207  }
208 
213  {
214  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
215  $this->testFilesToDelete[] = $fileName;
216  file_put_contents($fileName, 'FOO BAR');
217  $resource = fopen($fileName, 'wb+');
218  ‪$stream = new Stream($resource);
219 
220  fseek($resource, 2);
221  $this->assertFalse(‪$stream->‪eof());
222  }
223 
227  public function ‪eofReportsTrueWhenAtEndOfStream()
228  {
229  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
230  $this->testFilesToDelete[] = $fileName;
231  file_put_contents($fileName, 'FOO BAR');
232  $resource = fopen($fileName, 'wb+');
233  ‪$stream = new Stream($resource);
234 
235  while (!feof($resource)) {
236  fread($resource, 4096);
237  }
238  $this->assertTrue(‪$stream->‪eof());
239  }
240 
244  public function ‪eofReportsTrueWhenStreamIsDetached()
245  {
246  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
247  $this->testFilesToDelete[] = $fileName;
248  file_put_contents($fileName, 'FOO BAR');
249  $resource = fopen($fileName, 'wb+');
250  ‪$stream = new Stream($resource);
251 
252  fseek($resource, 2);
254  $this->assertTrue(‪$stream->‪eof());
255  }
256 
261  {
262  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
263  $this->testFilesToDelete[] = $fileName;
264  file_put_contents($fileName, 'FOO BAR');
265  $resource = fopen($fileName, 'wb+');
266  ‪$stream = new Stream($resource);
267  $this->assertTrue(‪$stream->‪isSeekable());
268  }
269 
274  {
275  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
276  $this->testFilesToDelete[] = $fileName;
277  file_put_contents($fileName, 'FOO BAR');
278  $resource = fopen($fileName, 'wb+');
279  ‪$stream = new Stream($resource);
281  $this->assertFalse(‪$stream->‪isSeekable());
282  }
283 
287  public function ‪seekAdvancesToGivenOffsetOfStream()
288  {
289  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
290  $this->testFilesToDelete[] = $fileName;
291  file_put_contents($fileName, 'FOO BAR');
292  $resource = fopen($fileName, 'wb+');
293  ‪$stream = new Stream($resource);
294  ‪$stream->‪seek(2);
295  $this->assertEquals(2, ‪$stream->‪tell());
296  }
297 
301  public function ‪rewindResetsToStartOfStream()
302  {
303  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
304  $this->testFilesToDelete[] = $fileName;
305  file_put_contents($fileName, 'FOO BAR');
306  $resource = fopen($fileName, 'wb+');
307  ‪$stream = new Stream($resource);
308  ‪$stream->‪seek(2);
310  $this->assertEquals(0, ‪$stream->‪tell());
311  }
312 
317  {
318  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
319  $this->testFilesToDelete[] = $fileName;
320  file_put_contents($fileName, 'FOO BAR');
321  $resource = fopen($fileName, 'wb+');
322  ‪$stream = new Stream($resource);
324  $this->expectException(\RuntimeException::class);
325  $this->expectExceptionCode(1436717287);
326  ‪$stream->‪seek(2);
327  }
328 
333  {
334  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
335  $this->testFilesToDelete[] = $fileName;
336  file_put_contents($fileName, 'FOO BAR');
337  $resource = fopen($fileName, 'wb+');
338  ‪$stream = new Stream($resource);
340  $this->assertFalse(‪$stream->‪isWritable());
341  }
342 
347  {
348  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
349  $this->testFilesToDelete[] = $fileName;
350  file_put_contents($fileName, 'FOO BAR');
351  $resource = fopen($fileName, 'wb+');
352  ‪$stream = new Stream($resource);
354  $this->expectException(\RuntimeException::class);
355  $this->expectExceptionCode(1436717290);
356  ‪$stream->‪write('bar');
357  }
358 
363  {
364  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
365  $this->testFilesToDelete[] = $fileName;
366  file_put_contents($fileName, 'FOO BAR');
367  $resource = fopen($fileName, 'wb+');
368  ‪$stream = new Stream($resource);
370  $this->assertFalse(‪$stream->‪isReadable());
371  }
372 
377  {
378  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
379  $this->testFilesToDelete[] = $fileName;
380  file_put_contents($fileName, 'FOO BAR');
381  $resource = fopen($fileName, 'r');
382  ‪$stream = new Stream($resource);
384  $this->expectException(\RuntimeException::class);
385  $this->expectExceptionCode(1436717292);
386  ‪$stream->‪read(4096);
387  }
388 
393  {
394  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
395  $this->testFilesToDelete[] = $fileName;
396  file_put_contents($fileName, 'FOO BAR');
397  $resource = fopen($fileName, 'r');
398  ‪$stream = new Stream($resource);
399  while (!feof($resource)) {
400  fread($resource, 4096);
401  }
402  $this->assertEquals('', ‪$stream->‪read(4096));
403  }
404 
409  {
410  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
411  $this->testFilesToDelete[] = $fileName;
412  file_put_contents($fileName, 'FOO BAR');
413  $resource = fopen($fileName, 'w');
414  ‪$stream = new Stream($resource);
415  $this->assertEquals('', ‪$stream->‪getContents());
416  }
417 
421  public function ‪invalidResourcesDataProvider()
422  {
423  $fileName = tempnam(sys_get_temp_dir(), 'PHLY');
424  $this->testFilesToDelete[] = $fileName;
425 
426  return [
427  'null' => [null],
428  'false' => [false],
429  'true' => [true],
430  'int' => [1],
431  'float' => [1.1],
432  'array' => [[fopen($fileName, 'r+')]],
433  'object' => [(object)['resource' => fopen($fileName, 'r+')]],
434  ];
435  }
436 
442  {
443  $this->expectException(\InvalidArgumentException::class);
444  $this->expectExceptionCode(1436717297);
445  $this->stream->attach($resource);
446  }
447 
452  {
453  $this->expectException(\InvalidArgumentException::class);
454  $this->expectExceptionCode(1436717296);
455  $this->stream->attach('foo-bar-baz');
456  }
457 
461  public function ‪attachWithResourceAttachesResource()
462  {
463  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
464  touch($fileName);
465  $this->testFilesToDelete[] = $fileName;
466  $resource = fopen($fileName, 'r+');
467  $this->stream->attach($resource);
468 
469  $r = new \ReflectionProperty($this->stream, 'resource');
470  $r->setAccessible(true);
471  $test = $r->getValue($this->stream);
472  $this->assertSame($resource, $test);
473  }
474 
479  {
480  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
481  touch($fileName);
482  $this->testFilesToDelete[] = $fileName;
483  $this->stream->attach($fileName);
484 
485  $resource = fopen($fileName, 'r+');
486  fwrite($resource, 'FooBar');
487 
488  $this->stream->rewind();
489  $test = (string)$this->stream;
490  $this->assertEquals('FooBar', $test);
491  }
492 
497  {
498  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
499  touch($fileName);
500  $this->testFilesToDelete[] = $fileName;
501  $resource = fopen($fileName, 'r+');
502  $this->stream->attach($resource);
503 
504  fwrite($resource, 'FooBar');
505 
506  // rewind, because current pointer is at end of stream!
507  $this->stream->rewind();
508  $test = $this->stream->getContents();
509  $this->assertEquals('FooBar', $test);
510  }
511 
516  {
517  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
518  touch($fileName);
519  $this->testFilesToDelete[] = $fileName;
520  $resource = fopen($fileName, 'r+');
521  $this->stream->attach($resource);
522 
523  fwrite($resource, 'FooBar');
524 
525  // seek to position 3
526  $this->stream->seek(3);
527  $test = $this->stream->getContents();
528  $this->assertEquals('Bar', $test);
529  }
530 
535  {
536  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
537  touch($fileName);
538  $this->testFilesToDelete[] = $fileName;
539  $resource = fopen($fileName, 'r+');
540  $this->stream->attach($resource);
541 
542  $expected = stream_get_meta_data($resource);
543  $test = $this->stream->getMetadata();
544 
545  $this->assertEquals($expected, $test);
546  }
547 
552  {
553  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
554  touch($fileName);
555  $this->testFilesToDelete[] = $fileName;
556  $resource = fopen($fileName, 'r+');
557  $this->stream->attach($resource);
558 
559  $metadata = stream_get_meta_data($resource);
560  $expected = $metadata['uri'];
561 
562  $test = $this->stream->getMetadata('uri');
563 
564  $this->assertEquals($expected, $test);
565  }
566 
571  {
572  $fileName = ‪Environment::getVarPath() . '/tests/' . $this->getUniqueId('test_');
573  touch($fileName);
574  $this->testFilesToDelete[] = $fileName;
575  $resource = fopen($fileName, 'r+');
576  $this->stream->attach($resource);
577 
578  $this->assertNull($this->stream->getMetadata('TOTALLY_MADE_UP'));
579  }
580 
584  public function ‪getSizeReturnsStreamSize()
585  {
586  $resource = fopen(__FILE__, 'r');
587  $expected = fstat($resource);
588  ‪$stream = new Stream($resource);
589  $this->assertEquals($expected['size'], ‪$stream->‪getSize());
590  }
591 }
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\closeUnsetsResource
‪closeUnsetsResource()
Definition: StreamTest.php:136
‪TYPO3\CMS\Core\Http\Stream\rewind
‪rewind()
Definition: Stream.php:207
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\attachWithStringRepresentingResourceCreatesAndAttachesResource
‪attachWithStringRepresentingResourceCreatesAndAttachesResource()
Definition: StreamTest.php:477
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\invalidResourcesDataProvider
‪array invalidResourcesDataProvider()
Definition: StreamTest.php:420
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\readRaisesExceptionWhenStreamIsDetached
‪readRaisesExceptionWhenStreamIsDetached()
Definition: StreamTest.php:375
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\tellReportsCurrentPositionInResource
‪tellReportsCurrentPositionInResource()
Definition: StreamTest.php:177
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\getContentsReturnsEmptyStringIfStreamIsNotReadable
‪getContentsReturnsEmptyStringIfStreamIsNotReadable()
Definition: StreamTest.php:407
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\attachWithResourceAttachesResource
‪attachWithResourceAttachesResource()
Definition: StreamTest.php:460
‪TYPO3\CMS\Core\Tests\Unit\Http
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\isSeekableReturnsFalseForDetachedStreams
‪isSeekableReturnsFalseForDetachedStreams()
Definition: StreamTest.php:272
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\writeRaisesExceptionWhenStreamIsDetached
‪writeRaisesExceptionWhenStreamIsDetached()
Definition: StreamTest.php:345
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\attachWithNonStringNonResourceRaisesExceptionByType
‪attachWithNonStringNonResourceRaisesExceptionByType($resource)
Definition: StreamTest.php:440
‪TYPO3\CMS\Core\Http\Stream\seek
‪seek($offset, $whence=SEEK_SET)
Definition: Stream.php:182
‪TYPO3\CMS\Core\Http\Stream\tell
‪int tell()
Definition: Stream.php:130
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\closeClosesResource
‪closeClosesResource()
Definition: StreamTest.php:122
‪TYPO3\CMS\Core\Http\Stream\read
‪string read($length)
Definition: Stream.php:269
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\isWritableReturnsFalseIfStreamIsNotWritable
‪isWritableReturnsFalseIfStreamIsNotWritable()
Definition: StreamTest.php:70
‪TYPO3\CMS\Core\Http\Stream\eof
‪bool eof()
Definition: Stream.php:147
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\getMetadataReturnsAllMetadataWhenNoKeyPresent
‪getMetadataReturnsAllMetadataWhenNoKeyPresent()
Definition: StreamTest.php:533
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\getContentsShouldReturnStreamContentsFromCurrentPointer
‪getContentsShouldReturnStreamContentsFromCurrentPointer()
Definition: StreamTest.php:514
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\toStringSerializationReturnsEmptyStringWhenStreamIsNotReadable
‪toStringSerializationReturnsEmptyStringWhenStreamIsNotReadable()
Definition: StreamTest.php:108
‪TYPO3\CMS\Core\Http\Stream\isSeekable
‪bool isSeekable()
Definition: Stream.php:160
‪TYPO3\CMS\Core\Http\Stream\write
‪int write($string)
Definition: Stream.php:233
‪TYPO3\CMS\Core\Http\Stream\isReadable
‪bool isReadable()
Definition: Stream.php:250
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\eofReportsFalseWhenNotAtEndOfStream
‪eofReportsFalseWhenNotAtEndOfStream()
Definition: StreamTest.php:211
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\constructorRaisesExceptionWhenPassingInvalidStreamResource
‪constructorRaisesExceptionWhenPassingInvalidStreamResource()
Definition: StreamTest.php:99
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\canInstantiteWithStreamResource
‪canInstantiteWithStreamResource()
Definition: StreamTest.php:48
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\getSizeReturnsStreamSize
‪getSizeReturnsStreamSize()
Definition: StreamTest.php:583
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\getMetadataReturnsNullIfNoDataExistsForKey
‪getMetadataReturnsNullIfNoDataExistsForKey()
Definition: StreamTest.php:569
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\isReadableReturnsFalseWhenStreamIsDetached
‪isReadableReturnsFalseWhenStreamIsDetached()
Definition: StreamTest.php:361
‪TYPO3\CMS\Core\Http\Stream
Definition: Stream.php:28
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\$stream
‪Stream $stream
Definition: StreamTest.php:30
‪TYPO3\CMS\Core\Http\Stream\__toString
‪string __toString()
Definition: Stream.php:71
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\rewindResetsToStartOfStream
‪rewindResetsToStartOfStream()
Definition: StreamTest.php:300
‪TYPO3\CMS\Core\Http\Stream\getContents
‪string getContents()
Definition: Stream.php:291
‪TYPO3\CMS\Core\Http\Stream\getSize
‪int null getSize()
Definition: Stream.php:115
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\eofReportsTrueWhenAtEndOfStream
‪eofReportsTrueWhenAtEndOfStream()
Definition: StreamTest.php:226
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\seekAdvancesToGivenOffsetOfStream
‪seekAdvancesToGivenOffsetOfStream()
Definition: StreamTest.php:286
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\toStringRetrievesFullContentsOfStream
‪toStringRetrievesFullContentsOfStream()
Definition: StreamTest.php:79
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\setUp
‪setUp()
Definition: StreamTest.php:32
‪TYPO3\CMS\Core\Http\Stream\close
‪close()
Definition: Stream.php:87
‪TYPO3\CMS\Core\Http\Stream\detach
‪resource null detach()
Definition: Stream.php:103
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\isWritableReturnsFalseWhenStreamIsDetached
‪isWritableReturnsFalseWhenStreamIsDetached()
Definition: StreamTest.php:331
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\attachWithNonStringNonResourceRaisesExceptionByString
‪attachWithNonStringNonResourceRaisesExceptionByString()
Definition: StreamTest.php:450
‪TYPO3\CMS\Core\Core\Environment
Definition: Environment.php:39
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\getContentsShouldGetFullStreamContents
‪getContentsShouldGetFullStreamContents()
Definition: StreamTest.php:495
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\isReadableReturnsFalseIfStreamIsNotReadable
‪isReadableReturnsFalseIfStreamIsNotReadable()
Definition: StreamTest.php:58
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\tellRaisesExceptionIfResourceIsDetached
‪tellRaisesExceptionIfResourceIsDetached()
Definition: StreamTest.php:193
‪TYPO3\CMS\Core\Http\Stream\isWritable
‪bool isWritable()
Definition: Stream.php:217
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\eofReportsTrueWhenStreamIsDetached
‪eofReportsTrueWhenStreamIsDetached()
Definition: StreamTest.php:243
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\getMetadataReturnsDataForSpecifiedKey
‪getMetadataReturnsDataForSpecifiedKey()
Definition: StreamTest.php:550
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\readReturnsEmptyStringWhenAtEndOfFile
‪readReturnsEmptyStringWhenAtEndOfFile()
Definition: StreamTest.php:391
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\closeDoesNothingAfterDetach
‪closeDoesNothingAfterDetach()
Definition: StreamTest.php:151
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest
Definition: StreamTest.php:27
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\seekRaisesExceptionWhenStreamIsDetached
‪seekRaisesExceptionWhenStreamIsDetached()
Definition: StreamTest.php:315
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\isSeekableReturnsTrueForReadableStreams
‪isSeekableReturnsTrueForReadableStreams()
Definition: StreamTest.php:259
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\getSizeReportsNullWhenNoResourcePresent
‪getSizeReportsNullWhenNoResourcePresent()
Definition: StreamTest.php:168
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\canInstantiateWithStreamIdentifier
‪canInstantiateWithStreamIdentifier()
Definition: StreamTest.php:40
‪TYPO3\CMS\Core\Core\Environment\getVarPath
‪static string getVarPath()
Definition: Environment.php:165
‪TYPO3\CMS\Core\Tests\Unit\Http\StreamTest\detachReturnsResource
‪detachReturnsResource()
Definition: StreamTest.php:89