소스 검색

ZF-10738 improve null handling for Zend_Validate_File_Upload

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@23569 44c647ce-9c0f-0410-b52a-842ac1e357ba
mjh_ca 15 년 전
부모
커밋
0d22ab3c16
2개의 변경된 파일27개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      library/Zend/Validate/File/Upload.php
  2. 22 0
      tests/Zend/Validate/File/UploadTest.php

+ 5 - 0
library/Zend/Validate/File/Upload.php

@@ -136,6 +136,11 @@ class Zend_Validate_File_Upload extends Zend_Validate_Abstract
             $this->_files = $files;
         }
 
+        // see ZF-10738
+        if (is_null($this->_files)) {
+            $this->_files = array();
+        }
+
         foreach($this->_files as $file => $content) {
             if (!isset($content['error'])) {
                 unset($this->_files[$file]);

+ 22 - 0
tests/Zend/Validate/File/UploadTest.php

@@ -252,6 +252,28 @@ class Zend_Validate_File_UploadTest extends PHPUnit_Framework_TestCase
         $validator->setFiles($files);
         $this->assertEquals($files, $validator->getFiles());
     }
+
+    /**
+     * @group ZF-10738
+     */
+    public function testGetFilesReturnsEmptyArrayWhenFilesSuperglobalIsNull()
+    {
+        $_FILES = NULL;
+        $validator = new Zend_Validate_File_Upload();
+        $validator->setFiles();
+        $this->assertEquals(array(), $validator->getFiles());
+    }
+
+    /**
+     * @group ZF-10738
+     */
+    public function testGetFilesReturnsEmptyArrayAfterSetFilesIsCalledWithNull()
+    {
+        $validator = new Zend_Validate_File_Upload();
+        $validator->setFiles(NULL);
+        $this->assertEquals(array(), $validator->getFiles());
+    }
+
 }
 
 // Call Zend_Validate_File_UploadTest::main() if this source file is executed directly.