OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
reader
/
znew1aws-ses
/
vendor
/
guzzlehttp
/
psr7
/
tests
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/19/2025 10:07:15 AM
rwxr-xr-x
📄
AppendStreamTest.php
6.91 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
BufferStreamTest.php
1.98 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
CachingStreamTest.php
6.62 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
DroppingStreamTest.php
964 bytes
05/19/2025 10:07:15 AM
rw-r--r--
📄
FnStreamTest.php
3.75 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
HasToString.php
177 bytes
05/19/2025 10:07:15 AM
rw-r--r--
📄
HeaderTest.php
6.14 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
InflateStreamTest.php
3.06 KB
05/19/2025 10:07:15 AM
rw-r--r--
📁
Integration
-
05/19/2025 10:07:15 AM
rwxr-xr-x
📄
LazyOpenStreamTest.php
1.88 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
LimitStreamTest.php
4.94 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
MessageTest.php
12.73 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
MimeTypeTest.php
617 bytes
05/19/2025 10:07:15 AM
rw-r--r--
📄
MultipartStreamTest.php
9.67 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
NoSeekStreamTest.php
1.05 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
PumpStreamTest.php
3.13 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
QueryTest.php
4.1 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
ReadSeekOnlyStream.php
460 bytes
05/19/2025 10:07:15 AM
rw-r--r--
📄
RequestTest.php
10.78 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
ResponseTest.php
13.89 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
ServerRequestTest.php
20.07 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
StreamDecoratorTraitTest.php
3.81 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
StreamTest.php
12.89 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
StreamWrapperTest.php
5.52 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
UploadedFileTest.php
6.63 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
UriComparatorTest.php
1.81 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
UriNormalizerTest.php
7.06 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
UriResolverTest.php
10.89 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
UriTest.php
27.18 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
UtilsTest.php
18.04 KB
05/19/2025 10:07:15 AM
rw-r--r--
Editing: UploadedFileTest.php
Close
<?php declare(strict_types=1); namespace GuzzleHttp\Tests\Psr7; use GuzzleHttp\Psr7\Stream; use GuzzleHttp\Psr7\UploadedFile; use PHPUnit\Framework\TestCase; use ReflectionProperty; /** * @covers \GuzzleHttp\Psr7\UploadedFile */ class UploadedFileTest extends TestCase { private $cleanup; protected function setUp(): void { $this->cleanup = []; } protected function tearDown(): void { foreach ($this->cleanup as $file) { if (is_scalar($file) && file_exists($file)) { unlink($file); } } } public function invalidStreams() { return [ 'null' => [null], 'true' => [true], 'false' => [false], 'int' => [1], 'float' => [1.1], 'array' => [['filename']], 'object' => [(object) ['filename']], ]; } /** * @dataProvider invalidStreams */ public function testRaisesExceptionOnInvalidStreamOrFile($streamOrFile): void { $this->expectException(\InvalidArgumentException::class); new UploadedFile($streamOrFile, 0, UPLOAD_ERR_OK); } public function testGetStreamReturnsOriginalStreamObject(): void { $stream = new Stream(fopen('php://temp', 'r')); $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK); self::assertSame($stream, $upload->getStream()); } public function testGetStreamReturnsWrappedPhpStream(): void { $stream = fopen('php://temp', 'wb+'); $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK); $uploadStream = $upload->getStream()->detach(); self::assertSame($stream, $uploadStream); } public function testGetStreamReturnsStreamForFile(): void { $this->cleanup[] = $stream = tempnam(sys_get_temp_dir(), 'stream_file'); $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK); $uploadStream = $upload->getStream(); $r = new ReflectionProperty($uploadStream, 'filename'); $r->setAccessible(true); self::assertSame($stream, $r->getValue($uploadStream)); } public function testSuccessful(): void { $stream = \GuzzleHttp\Psr7\Utils::streamFor('Foo bar!'); $upload = new UploadedFile($stream, $stream->getSize(), UPLOAD_ERR_OK, 'filename.txt', 'text/plain'); self::assertSame($stream->getSize(), $upload->getSize()); self::assertSame('filename.txt', $upload->getClientFilename()); self::assertSame('text/plain', $upload->getClientMediaType()); $this->cleanup[] = $to = tempnam(sys_get_temp_dir(), 'successful'); $upload->moveTo($to); self::assertFileExists($to); self::assertSame($stream->__toString(), file_get_contents($to)); } public function invalidMovePaths(): iterable { return [ 'null' => [null], 'true' => [true], 'false' => [false], 'int' => [1], 'float' => [1.1], 'empty' => [''], 'array' => [['filename']], 'object' => [(object) ['filename']], ]; } /** * @dataProvider invalidMovePaths */ public function testMoveRaisesExceptionForInvalidPath($path): void { $stream = \GuzzleHttp\Psr7\Utils::streamFor('Foo bar!'); $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK); $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('path'); $upload->moveTo($path); } public function testMoveCannotBeCalledMoreThanOnce(): void { $stream = \GuzzleHttp\Psr7\Utils::streamFor('Foo bar!'); $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK); $this->cleanup[] = $to = tempnam(sys_get_temp_dir(), 'diac'); $upload->moveTo($to); self::assertFileExists($to); $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('moved'); $upload->moveTo($to); } public function testCannotRetrieveStreamAfterMove(): void { $stream = \GuzzleHttp\Psr7\Utils::streamFor('Foo bar!'); $upload = new UploadedFile($stream, 0, UPLOAD_ERR_OK); $this->cleanup[] = $to = tempnam(sys_get_temp_dir(), 'diac'); $upload->moveTo($to); self::assertFileExists($to); $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('moved'); $upload->getStream(); } public function nonOkErrorStatus(): iterable { return [ 'UPLOAD_ERR_INI_SIZE' => [UPLOAD_ERR_INI_SIZE], 'UPLOAD_ERR_FORM_SIZE' => [UPLOAD_ERR_FORM_SIZE], 'UPLOAD_ERR_PARTIAL' => [UPLOAD_ERR_PARTIAL], 'UPLOAD_ERR_NO_FILE' => [UPLOAD_ERR_NO_FILE], 'UPLOAD_ERR_NO_TMP_DIR' => [UPLOAD_ERR_NO_TMP_DIR], 'UPLOAD_ERR_CANT_WRITE' => [UPLOAD_ERR_CANT_WRITE], 'UPLOAD_ERR_EXTENSION' => [UPLOAD_ERR_EXTENSION], ]; } /** * @dataProvider nonOkErrorStatus */ public function testConstructorDoesNotRaiseExceptionForInvalidStreamWhenErrorStatusPresent($status): void { $uploadedFile = new UploadedFile('not ok', 0, $status); self::assertSame($status, $uploadedFile->getError()); } /** * @dataProvider nonOkErrorStatus */ public function testMoveToRaisesExceptionWhenErrorStatusPresent($status): void { $uploadedFile = new UploadedFile('not ok', 0, $status); $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('upload error'); $uploadedFile->moveTo(__DIR__.'/'.bin2hex(random_bytes(20))); } /** * @dataProvider nonOkErrorStatus */ public function testGetStreamRaisesExceptionWhenErrorStatusPresent($status): void { $uploadedFile = new UploadedFile('not ok', 0, $status); $this->expectException(\RuntimeException::class); $this->expectExceptionMessage('upload error'); $uploadedFile->getStream(); } public function testMoveToCreatesStreamIfOnlyAFilenameWasProvided(): void { $this->cleanup[] = $from = tempnam(sys_get_temp_dir(), 'copy_from'); $this->cleanup[] = $to = tempnam(sys_get_temp_dir(), 'copy_to'); copy(__FILE__, $from); $uploadedFile = new UploadedFile($from, 100, UPLOAD_ERR_OK, basename($from), 'text/plain'); $uploadedFile->moveTo($to); self::assertFileEquals(__FILE__, $to); } }