diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-02-28 18:05:17 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-02-28 18:05:17 +0000 |
commit | dac7903da3abb64309b5bf12ce36892b393cb9af (patch) | |
tree | 49690d33d31ddc420b705acf6cde63bd61094d14 /test/integration | |
parent | dcc216002d6b2587f4aef4f628e82d8a970395df (diff) | |
download | redmine-dac7903da3abb64309b5bf12ce36892b393cb9af.tar.gz redmine-dac7903da3abb64309b5bf12ce36892b393cb9af.zip |
Fixes uploading of empty files (#25115).
- prevents creation of attachment records without existing diskfile and empty
digest
- adds test case to check file upload API response
- also removes the file size check in ActsAsAttachable which still prevented
attachment of zero size attachments to containers but only for clients
without Javascript (where save_attachments is called with the actual file
upload).
Patch by Jens Kraemer.
git-svn-id: http://svn.redmine.org/redmine/trunk@16341 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/integration')
-rw-r--r-- | test/integration/api_test/attachments_test.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/integration/api_test/attachments_test.rb b/test/integration/api_test/attachments_test.rb index 4188d7116..641dccabf 100644 --- a/test/integration/api_test/attachments_test.rb +++ b/test/integration/api_test/attachments_test.rb @@ -197,4 +197,23 @@ class Redmine::ApiTest::AttachmentsTest < Redmine::ApiTest::Base end end end + + test "POST /uploads.json should create an empty file and return a valid token" do + set_tmp_attachments_directory + assert_difference 'Attachment.count' do + post '/uploads.json', '', {"CONTENT_TYPE" => 'application/octet-stream'}.merge(credentials('jsmith')) + assert_response :created + + end + + json = ActiveSupport::JSON.decode(response.body) + assert_kind_of Hash, json['upload'] + token = json['upload']['token'] + assert token.present? + + assert attachment = Attachment.find_by_token(token) + assert_equal 0, attachment.filesize + assert attachment.digest.present? + assert File.exist? attachment.diskfile + end end |