diff --git a/src/Symfony/Component/Form/Extension/Core/Type/FileType.php b/src/Symfony/Component/Form/Extension/Core/Type/FileType.php index 58368c7c3d..d6c9932cc4 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/FileType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/FileType.php @@ -46,7 +46,8 @@ class FileType extends AbstractType { $resolver->setDefaults(array( 'compound' => false, - 'data_class' => 'Symfony\Component\HttpFoundation\File\File' + 'data_class' => 'Symfony\Component\HttpFoundation\File\File', + 'empty_data' => null, )); } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/FileTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/FileTypeTest.php index 30b8798e2d..68efc0cb20 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/FileTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/FileTypeTest.php @@ -11,16 +11,37 @@ namespace Symfony\Component\Form\Tests\Extension\Core\Type; -use Symfony\Component\HttpFoundation\File\UploadedFile; - class FileTypeTest extends TypeTestCase { - public function testFormBuilderIfEntityHasFile() + // https://github.com/symfony/symfony/pull/5028 + public function testSetData() { - $this->factory->createBuilder('file') - ->getForm() - ->setData($this->createUploadedFileMock('abcdef', 'original.jpg', true)) - ; + $form = $this->factory->createBuilder('file')->getForm(); + $data = $this->createUploadedFileMock('abcdef', 'original.jpg', true); + + $form->setData($data); + + $this->assertSame($data, $form->getData()); + } + + public function testBind() + { + $form = $this->factory->createBuilder('file')->getForm(); + $data = $this->createUploadedFileMock('abcdef', 'original.jpg', true); + + $form->bind($data); + + $this->assertSame($data, $form->getData()); + } + + // https://github.com/symfony/symfony/issues/6134 + public function testBindEmpty() + { + $form = $this->factory->createBuilder('file')->getForm(); + + $form->bind(null); + + $this->assertNull($form->getData()); } public function testDontPassValueToView()