Fixed that text/plain attachments are added to issue description (#15684).

git-svn-id: http://svn.redmine.org/redmine/trunk@12420 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2013-12-18 18:13:13 +00:00
parent 0ee2af4c06
commit d4297ca3ff
3 changed files with 21 additions and 1 deletions

View File

@ -405,6 +405,11 @@ class MailHandler < ActionMailer::Base
else
[email]
end
parts.reject! do |part|
part.header[:content_disposition].try(:disposition_type) == 'attachment'
end
@plain_text_body = parts.map {|p| Redmine::CodesetUtil.to_utf8(p.body.decoded, p.charset)}.join("\r\n")
# strip html tags and remove doctype directive

View File

@ -52,4 +52,11 @@ Content-Type: text/plain;
The third one.
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="textfile.txt"
Plain text attachment
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9--

View File

@ -501,13 +501,21 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal 'd8e8fca2dc0f896fd7cb4cb0031ba249', attachment.digest
end
def test_multiple_text_parts
def test_multiple_inline_text_parts_should_be_appended_to_issue_description
issue = submit_email('multiple_text_parts.eml', :issue => {:project => 'ecookbook'})
assert_include 'first', issue.description
assert_include 'second', issue.description
assert_include 'third', issue.description
end
def test_attachment_text_part_should_be_added_as_issue_attachment
issue = submit_email('multiple_text_parts.eml', :issue => {:project => 'ecookbook'})
assert_not_include 'Plain text attachment', issue.description
attachment = issue.attachments.detect {|a| a.filename == 'textfile.txt'}
assert_not_nil attachment
assert_include 'Plain text attachment', File.read(attachment.diskfile)
end
def test_add_issue_with_iso_8859_1_subject
issue = submit_email(
'subject_as_iso-8859-1.eml',