Skip to content

Commit

Permalink
Allow empty files to be uploaded
Browse files Browse the repository at this point in the history
  • Loading branch information
josh committed Jan 21, 2009
1 parent 7e4d13d commit a8ad656
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 4 deletions.
Expand Up @@ -46,7 +46,7 @@ def get_typed_value(value)
when Array
value.map { |v| get_typed_value(v) }
when Hash
if value.has_key?(:tempfile) && value[:tempfile].size > 0
if value.has_key?(:tempfile) && value[:filename].any?
upload = value[:tempfile]
upload.extend(UploadedFile)
upload.original_path = value[:filename]
Expand Down
Expand Up @@ -101,11 +101,19 @@ def teardown
assert_equal 19756, files.size
end

test "skips empty upload field" do
test "does not create tempfile if no file has been selected" do
params = parse_multipart('none')
assert_equal %w(files submit-name), params.keys.sort
assert_equal 'Larry', params['submit-name']
assert_equal nil, params['files']
end

test "parses empty upload file" do
params = parse_multipart('empty')
assert_equal %w(files submit-name), params.keys.sort
assert_equal 'Larry', params['submit-name']
assert_equal nil, params['file']
assert params['files']
assert_equal "", params['files'].read
end

test "uploads and reads binary file" do
Expand Down
3 changes: 2 additions & 1 deletion actionpack/test/fixtures/multipart/empty
Expand Up @@ -3,7 +3,8 @@ Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename=""
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain


--AaB03x--
9 changes: 9 additions & 0 deletions actionpack/test/fixtures/multipart/none
@@ -0,0 +1,9 @@
--AaB03x
Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename=""


--AaB03x--

0 comments on commit a8ad656

Please sign in to comment.