diff --git a/core/modules/file/tests/src/Kernel/FileFieldUploadHandlerTest.php b/core/modules/file/tests/src/Kernel/FileFieldUploadHandlerTest.php new file mode 100644 index 0000000000..16aaa055cf --- /dev/null +++ b/core/modules/file/tests/src/Kernel/FileFieldUploadHandlerTest.php @@ -0,0 +1,67 @@ +fileFieldUploadHandler = $this->container->get('file.field_upload_handler'); + } + + /** + * @covers ::handleFileUploadForField + */ + public function testHandleFileUploadForField() { + + $vfsRoot = vfsStream::setup(); + $tempFile = vfsStream::newFile("temp1234")->at($vfsRoot); + + $filename = $this->randomMachineName() . ".txt"; + $uploadedFile = new RawUploadedFile($tempFile->url(), $filename); + + $fileDir = $this->randomMachineName(); + + $fieldDefinition = $this->prophesize(FieldDefinitionInterface::class); + $fieldDefinition->getClass() + ->willReturn(FileFieldItemList::class); + $fieldDefinition->getSettings() + ->willReturn([ + 'file_directory' => $fileDir, + 'uri_scheme' => "public", + 'max_filesize' => "1024", + ]); + + $result = $this->fileFieldUploadHandler->handleFileUploadForField($uploadedFile, $fieldDefinition->reveal()); + + $this->assertNotNull($result); + + $file = $result->getFile(); + $this->assertNotNull($file); + + $this->assertEquals($filename, $file->getFilename()); + $this->assertEquals("public://$fileDir/$filename", $file->getFileUri()); + } + +} diff --git a/core/modules/file/tests/src/Kernel/FileUploadHandlerTest.php b/core/modules/file/tests/src/Kernel/FileUploadHandlerTest.php index 5c8fb7fb0b..c5f3362c8e 100644 --- a/core/modules/file/tests/src/Kernel/FileUploadHandlerTest.php +++ b/core/modules/file/tests/src/Kernel/FileUploadHandlerTest.php @@ -3,9 +3,9 @@ namespace Drupal\Tests\file\Kernel; use Drupal\Component\Utility\Environment; +use Drupal\file\Upload\UploadedFileInterface; use Drupal\KernelTests\KernelTestBase; use Symfony\Component\HttpFoundation\File\Exception\FormSizeFileException; -use Symfony\Component\HttpFoundation\File\UploadedFile; /** * Tests the file upload handler. @@ -39,7 +39,7 @@ protected function setUp(): void { */ public function testFileSaveUploadSingleErrorFormSize() { $file_name = $this->randomMachineName(); - $file_info = $this->createMock(UploadedFile::class); + $file_info = $this->createMock(UploadedFileInterface::class); $file_info->expects($this->once())->method('getError')->willReturn(UPLOAD_ERR_FORM_SIZE); $file_info->expects($this->once())->method('getClientOriginalName')->willReturn($file_name); $file_info->expects($this->once())->method('getErrorMessage')->willReturn(sprintf('The file "%s" could not be saved because it exceeds %s, the maximum allowed size for uploads.', $file_name, format_size(Environment::getUploadMaxSize()))); diff --git a/core/modules/file/tests/src/Unit/Upload/FileFieldUploadHandlerTest.php b/core/modules/file/tests/src/Unit/Upload/FileFieldUploadHandlerTest.php deleted file mode 100644 index c2ef042242..0000000000 --- a/core/modules/file/tests/src/Unit/Upload/FileFieldUploadHandlerTest.php +++ /dev/null @@ -1,60 +0,0 @@ -at($vfs_root)->setContent("foo"); - $path = vfsStream::url("tmp/$filename"); - - $uploadedFile = new UploadedFile($path, $filename, NULL, NULL, TRUE); - $formUploadedFile = new FormUploadedFile($uploadedFile); - - $fieldDefinition = $this->prophesize(FieldDefinitionInterface::class); - $fieldDefinition->getClass() - ->willReturn(FileFieldItemList::class); - $fieldDefinition->getSettings() - ->willReturn([ - 'file_directory' => $this->randomMachineName(), - 'uri_scheme' => "public://", - 'max_filesize' => "1024", - ]); - - $fileUploadHandler = $this->prophesize(FileUploadHandler::class); - $fileUploadHandler->handleFileUpload(Argument::any(), Argument::cetera()) - ->willReturn(new FileUploadResult()); - - $token = $this->prophesize(Token::class); - - $handler = new FileFieldUploadHandler($fileUploadHandler->reveal(), $token->reveal()); - $result = $handler->handleFileUploadForField($formUploadedFile, $fieldDefinition->reveal()); - - $this->assertNotNull($result); - } - -}