123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Component\HttpFoundation\Tests;
- use PHPUnit\Framework\TestCase;
- use Symfony\Component\HttpFoundation\File\UploadedFile;
- use Symfony\Component\HttpFoundation\FileBag;
- /**
- * FileBagTest.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
- */
- class FileBagTest extends TestCase
- {
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testFileMustBeAnArrayOrUploadedFile()
- {
- new FileBag(array('file' => 'foo'));
- }
- public function testShouldConvertsUploadedFiles()
- {
- $tmpFile = $this->createTempFile();
- $file = new UploadedFile($tmpFile, basename($tmpFile), 'text/plain', 100, 0);
- $bag = new FileBag(array('file' => array(
- 'name' => basename($tmpFile),
- 'type' => 'text/plain',
- 'tmp_name' => $tmpFile,
- 'error' => 0,
- 'size' => 100,
- )));
- $this->assertEquals($file, $bag->get('file'));
- }
- public function testShouldSetEmptyUploadedFilesToNull()
- {
- $bag = new FileBag(array('file' => array(
- 'name' => '',
- 'type' => '',
- 'tmp_name' => '',
- 'error' => UPLOAD_ERR_NO_FILE,
- 'size' => 0,
- )));
- $this->assertNull($bag->get('file'));
- }
- public function testShouldRemoveEmptyUploadedFilesForMultiUpload()
- {
- $bag = new FileBag(array('files' => array(
- 'name' => array(''),
- 'type' => array(''),
- 'tmp_name' => array(''),
- 'error' => array(UPLOAD_ERR_NO_FILE),
- 'size' => array(0),
- )));
- $this->assertSame(array(), $bag->get('files'));
- }
- public function testShouldNotRemoveEmptyUploadedFilesForAssociativeArray()
- {
- $bag = new FileBag(array('files' => array(
- 'name' => array('file1' => ''),
- 'type' => array('file1' => ''),
- 'tmp_name' => array('file1' => ''),
- 'error' => array('file1' => UPLOAD_ERR_NO_FILE),
- 'size' => array('file1' => 0),
- )));
- $this->assertSame(array('file1' => null), $bag->get('files'));
- }
- public function testShouldConvertUploadedFilesWithPhpBug()
- {
- $tmpFile = $this->createTempFile();
- $file = new UploadedFile($tmpFile, basename($tmpFile), 'text/plain', 100, 0);
- $bag = new FileBag(array(
- 'child' => array(
- 'name' => array(
- 'file' => basename($tmpFile),
- ),
- 'type' => array(
- 'file' => 'text/plain',
- ),
- 'tmp_name' => array(
- 'file' => $tmpFile,
- ),
- 'error' => array(
- 'file' => 0,
- ),
- 'size' => array(
- 'file' => 100,
- ),
- ),
- ));
- $files = $bag->all();
- $this->assertEquals($file, $files['child']['file']);
- }
- public function testShouldConvertNestedUploadedFilesWithPhpBug()
- {
- $tmpFile = $this->createTempFile();
- $file = new UploadedFile($tmpFile, basename($tmpFile), 'text/plain', 100, 0);
- $bag = new FileBag(array(
- 'child' => array(
- 'name' => array(
- 'sub' => array('file' => basename($tmpFile)),
- ),
- 'type' => array(
- 'sub' => array('file' => 'text/plain'),
- ),
- 'tmp_name' => array(
- 'sub' => array('file' => $tmpFile),
- ),
- 'error' => array(
- 'sub' => array('file' => 0),
- ),
- 'size' => array(
- 'sub' => array('file' => 100),
- ),
- ),
- ));
- $files = $bag->all();
- $this->assertEquals($file, $files['child']['sub']['file']);
- }
- public function testShouldNotConvertNestedUploadedFiles()
- {
- $tmpFile = $this->createTempFile();
- $file = new UploadedFile($tmpFile, basename($tmpFile), 'text/plain', 100, 0);
- $bag = new FileBag(array('image' => array('file' => $file)));
- $files = $bag->all();
- $this->assertEquals($file, $files['image']['file']);
- }
- protected function createTempFile()
- {
- return tempnam(sys_get_temp_dir().'/form_test', 'FormTest');
- }
- protected function setUp()
- {
- mkdir(sys_get_temp_dir().'/form_test', 0777, true);
- }
- protected function tearDown()
- {
- foreach (glob(sys_get_temp_dir().'/form_test/*') as $file) {
- unlink($file);
- }
- rmdir(sys_get_temp_dir().'/form_test');
- }
- }
|