Ver código fonte

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
tags/2.5.0
Jean-Philippe Lang 10 anos atrás
pai
commit
d4297ca3ff

+ 5
- 0
app/models/mail_handler.rb Ver arquivo

else else
[email] [email]
end 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") @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 # strip html tags and remove doctype directive

+ 7
- 0
test/fixtures/mail_handler/multiple_text_parts.eml Ver arquivo



The third one. 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-- --Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9--

+ 9
- 1
test/unit/mail_handler_test.rb Ver arquivo

assert_equal 'd8e8fca2dc0f896fd7cb4cb0031ba249', attachment.digest assert_equal 'd8e8fca2dc0f896fd7cb4cb0031ba249', attachment.digest
end 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'}) issue = submit_email('multiple_text_parts.eml', :issue => {:project => 'ecookbook'})
assert_include 'first', issue.description assert_include 'first', issue.description
assert_include 'second', issue.description assert_include 'second', issue.description
assert_include 'third', issue.description assert_include 'third', issue.description
end 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 def test_add_issue_with_iso_8859_1_subject
issue = submit_email( issue = submit_email(
'subject_as_iso-8859-1.eml', 'subject_as_iso-8859-1.eml',

Carregando…
Cancelar
Salvar