‪TYPO3CMS  ‪main
UploadedFileFactoryTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use Psr\Http\Message\UploadedFileFactoryInterface;
21 use Psr\Http\Message\UploadedFileInterface;
24 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
25 
26 final class ‪UploadedFileFactoryTest extends UnitTestCase
27 {
31  public function ‪implementsPsr17FactoryInterface(): void
32  {
33  $factory = new ‪UploadedFileFactory();
34  self::assertInstanceOf(UploadedFileFactoryInterface::class, $factory);
35  }
36 
40  public function ‪createUploadedFile(): void
41  {
42  $stream = new ‪Stream('php://memory');
43  $factory = new ‪UploadedFileFactory();
44  $uploadedFile = $factory->createUploadedFile($stream, 0);
45 
46  self::assertInstanceOf(UploadedFileInterface::class, $uploadedFile);
47  self::assertSame(UPLOAD_ERR_OK, $uploadedFile->getError());
48  self::assertNull($uploadedFile->getClientFileName());
49  self::assertNull($uploadedFile->getClientMediaType());
50  }
51 
55  public function ‪createUploadedFileWithParams(): void
56  {
57  $stream = new ‪Stream('php://memory');
58  $factory = new ‪UploadedFileFactory();
59  $uploadedFile = $factory->createUploadedFile($stream, 0, UPLOAD_ERR_NO_FILE, 'filename.html', 'text/html');
60 
61  self::assertInstanceOf(UploadedFileInterface::class, $uploadedFile);
62  self::assertSame(UPLOAD_ERR_NO_FILE, $uploadedFile->getError());
63  self::assertSame('filename.html', $uploadedFile->getClientFileName());
64  self::assertSame('text/html', $uploadedFile->getClientMediaType());
65  }
66 
71  {
72  $stream = new ‪Stream('php://memory', 'rw');
73  $stream->write('12345');
74 
75  $factory = new ‪UploadedFileFactory();
76  $uploadedFile = $factory->createUploadedFile($stream);
77 
78  self::assertSame(5, $uploadedFile->getSize());
79  }
80 
85  {
86  $this->expectException(\InvalidArgumentException::class);
87  $this->expectExceptionCode(1566823423);
88 
89  $stream = new ‪Stream('php://memory');
90  $stream->detach();
91 
92  $factory = new ‪UploadedFileFactory();
93  $uploadedFile = $factory->createUploadedFile($stream);
94 
95  self::assertSame(3, $uploadedFile->getSize());
96  }
97 }
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFileThrowsExceptionWhenStreamSizeCanNotBeDetermined
‪createUploadedFileThrowsExceptionWhenStreamSizeCanNotBeDetermined()
Definition: UploadedFileFactoryTest.php:84
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\implementsPsr17FactoryInterface
‪implementsPsr17FactoryInterface()
Definition: UploadedFileFactoryTest.php:31
‪TYPO3\CMS\Core\Http\UploadedFileFactory
Definition: UploadedFileFactory.php:28
‪TYPO3\CMS\Core\Tests\Unit\Http
Definition: ApplicationTypeTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFileCreateSizeFromStreamSize
‪createUploadedFileCreateSizeFromStreamSize()
Definition: UploadedFileFactoryTest.php:70
‪TYPO3\CMS\Core\Http\Stream
Definition: Stream.php:31
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFile
‪createUploadedFile()
Definition: UploadedFileFactoryTest.php:40
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFileWithParams
‪createUploadedFileWithParams()
Definition: UploadedFileFactoryTest.php:55
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest
Definition: UploadedFileFactoryTest.php:27