diff --git a/lib/plugins/acts_as_attachable/lib/acts_as_attachable.rb b/lib/plugins/acts_as_attachable/lib/acts_as_attachable.rb index ae7e605..a816490 100644 --- a/lib/plugins/acts_as_attachable/lib/acts_as_attachable.rb +++ b/lib/plugins/acts_as_attachable/lib/acts_as_attachable.rb @@ -87,7 +87,7 @@ module Redmine a = Attachment.find_by_token(token) next unless a a.filename = attachment['filename'] unless attachment['filename'].blank? - a.content_type = attachment['content_type'] + a.content_type = attachment['content_type'] unless attachment['content_type'].blank? end next unless a a.description = attachment['description'].to_s.strip diff --git a/test/unit/attachment_test.rb b/test/unit/attachment_test.rb index 4799229..6a077fc 100644 --- a/test/unit/attachment_test.rb +++ b/test/unit/attachment_test.rb @@ -241,6 +241,15 @@ class AttachmentTest < ActiveSupport::TestCase end end + test "Attachment.attach_files should preserve the content_type of attachments added by token" do + @project = Project.find(1) + attachment = Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1, :created_on => 2.days.ago) + assert_equal 'text/plain', attachment.content_type + Attachment.attach_files(@project, { '1' => {'token' => attachment.token } }) + attachment.reload + assert_equal 'text/plain', attachment.content_type + end + def test_latest_attach set_fixtures_attachments_directory a1 = Attachment.find(16)