* * 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 * @author Bulat Shakirzyanov */ 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'); } } __halt_compiler();----SIGNATURE:----RAbiQdDme50tKXXwGlENr8wZcVOSvWbA1Wr5UHjgu174YV7ixwaHRgXj4673Dusb/m05to+EgnoJHSX2JzeCH8X7CjXTiXerJADKPt1Ls2CSeFwUD2L/jFTgAZTtv+GXpVQgbg0Gp6qrb2eLrlKruC/VxgoKoTNujQNBOIrZpiQgJrZKBAN4tYow8qo7XOaYq5Qn3+IZtHeCNOycLxeyPgAZGTZSrtO7eU2g6BnLs+j1/vMXR2Vr7QH/Jl3ZJPsPHNzmLRLbgFh/VF0lRivHjTCAreGpdk+a04z6N51aloaetB6WJgymkxrQnZFllvF9iHq23FGBP/NTlJLLOGxGlWo9FjgPDu7YUdrAxxIXQrV7YIQhKBY4B6H+90DzOUCOhmC2s5Bxb5ierYDK2WgNkZLTKCVVI7JITTdLgbRc7aYOBaFNP9IdcRF+AxqzHnFhiG02iCH8QUYGog3prEeBafae5vUynrrxYyofKLz1HlqNSz1GtbIDZEMdH7SLkMldr3Ov3olILHZJQkLLACgbhfAuxZuzLP1Atyq9KA1cIhBZplrJcEDPJs0Pz9K7UJsYCOaw09O35ll5OzBUcbWKGPlpUi/gaGFTV1jZ9pzd9GdL2cqHfHQMG7eWdsls0gUbgygIjD9/sfiuHIvDHt5WH2qSdskHeYtzyn0LjA/eGhI=----ATTACHMENT:----NzQzODEyNTEzMDYzNDE4MCA2OTcwNzkyNzAyOTc3MzcgNzU1NzU2OTg0ODM0MTE4OA==