‪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 PHPUnit\Framework\Attributes\Test;
21 use Psr\Http\Message\UploadedFileFactoryInterface;
22 use Psr\Http\Message\UploadedFileInterface;
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
26 
27 final class ‪UploadedFileFactoryTest extends UnitTestCase
28 {
29  #[Test]
30  public function ‪implementsPsr17FactoryInterface(): void
31  {
32  $factory = new ‪UploadedFileFactory();
33  self::assertInstanceOf(UploadedFileFactoryInterface::class, $factory);
34  }
35 
36  #[Test]
37  public function ‪createUploadedFile(): void
38  {
39  $stream = new ‪Stream('php://memory');
40  $factory = new ‪UploadedFileFactory();
41  $uploadedFile = $factory->createUploadedFile($stream, 0);
42 
43  self::assertInstanceOf(UploadedFileInterface::class, $uploadedFile);
44  self::assertSame(UPLOAD_ERR_OK, $uploadedFile->getError());
45  self::assertNull($uploadedFile->getClientFileName());
46  self::assertNull($uploadedFile->getClientMediaType());
47  }
48 
49  #[Test]
50  public function ‪createUploadedFileWithParams(): void
51  {
52  $stream = new ‪Stream('php://memory');
53  $factory = new ‪UploadedFileFactory();
54  $uploadedFile = $factory->createUploadedFile($stream, 0, UPLOAD_ERR_NO_FILE, 'filename.html', 'text/html');
55 
56  self::assertInstanceOf(UploadedFileInterface::class, $uploadedFile);
57  self::assertSame(UPLOAD_ERR_NO_FILE, $uploadedFile->getError());
58  self::assertSame('filename.html', $uploadedFile->getClientFileName());
59  self::assertSame('text/html', $uploadedFile->getClientMediaType());
60  }
61 
62  #[Test]
64  {
65  $stream = new ‪Stream('php://memory', 'rw');
66  $stream->write('12345');
67 
68  $factory = new ‪UploadedFileFactory();
69  $uploadedFile = $factory->createUploadedFile($stream);
70 
71  self::assertSame(5, $uploadedFile->getSize());
72  }
73 
74  #[Test]
76  {
77  $this->expectException(\InvalidArgumentException::class);
78  $this->expectExceptionCode(1566823423);
79 
80  $stream = new ‪Stream('php://memory');
81  $stream->detach();
82 
83  $factory = new ‪UploadedFileFactory();
84  $uploadedFile = $factory->createUploadedFile($stream);
85 
86  self::assertSame(3, $uploadedFile->getSize());
87  }
88 }
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFileThrowsExceptionWhenStreamSizeCanNotBeDetermined
‪createUploadedFileThrowsExceptionWhenStreamSizeCanNotBeDetermined()
Definition: UploadedFileFactoryTest.php:75
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\implementsPsr17FactoryInterface
‪implementsPsr17FactoryInterface()
Definition: UploadedFileFactoryTest.php:30
‪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:63
‪TYPO3\CMS\Core\Http\Stream
Definition: Stream.php:31
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFile
‪createUploadedFile()
Definition: UploadedFileFactoryTest.php:37
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest\createUploadedFileWithParams
‪createUploadedFileWithParams()
Definition: UploadedFileFactoryTest.php:50
‪TYPO3\CMS\Core\Tests\Unit\Http\UploadedFileFactoryTest
Definition: UploadedFileFactoryTest.php:28