/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Tests/FileBagTest.php
PHP | 148 lines | 110 code | 21 blank | 17 comment | 0 complexity | 17f9729e4532b0faed835935233250d0 MD5 | raw file
Possible License(s): BSD-3-Clause
- <?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 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 \PHPUnit_Framework_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 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');
- }
- }