From e28cc10a35a9390faef72689148e762ac3425ae0 Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Fri, 4 Mar 2016 06:55:55 +0000 Subject: [PATCH] add test which ensure received mail text attachment keeps original encoding (#21742) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This test fails on Ruby >= 2.1 and will be fixed by next revision. Contributed by Pavel Rosický. git-svn-id: http://svn.redmine.org/redmine/trunk@15183 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- ...ticket_with_text_attachment_iso-8859-2.eml | 31 +++++++++++++++++++ test/unit/mail_handler_test.rb | 16 ++++++++++ 2 files changed, 47 insertions(+) create mode 100644 test/fixtures/mail_handler/ticket_with_text_attachment_iso-8859-2.eml diff --git a/test/fixtures/mail_handler/ticket_with_text_attachment_iso-8859-2.eml b/test/fixtures/mail_handler/ticket_with_text_attachment_iso-8859-2.eml new file mode 100644 index 000000000..56f1a7214 --- /dev/null +++ b/test/fixtures/mail_handler/ticket_with_text_attachment_iso-8859-2.eml @@ -0,0 +1,31 @@ +Date: Thu, 14 Jan 2016 18:32:45 +0100 +From: John Smith +To: redmine@somenet.foo +Message-ID: <7A3.L9Yi.1Ki1}PMZiV5.1Mbzkz@seznam.cz> +Subject: issue #21742 +Mime-Version: 1.0 +Content-Type: multipart/mixed; + boundary="=_08d580646981073f1a667ba3=898e56d9-3d29-5ed2-9c9a-cc3a5d9474b5_="; + charset=UTF-8 +Content-Transfer-Encoding: 7bit +X-Mailer: szn-ebox-4.5.88 + + +--=_08d580646981073f1a667ba3=898e56d9-3d29-5ed2-9c9a-cc3a5d9474b5_= +Content-Type: text/plain; + charset=utf-8 +Content-Transfer-Encoding: base64 + + +--=_08d580646981073f1a667ba3=898e56d9-3d29-5ed2-9c9a-cc3a5d9474b5_= +Content-Type: text/plain; + charset=UTF-8; + name=latin2.txt +Content-Transfer-Encoding: quoted-printable +Content-Disposition: attachment; + filename=latin2.txt; + size=19 + +p=F8=EDli=B9 =BEluou=E8k=FD k=F9n= + +--=_08d580646981073f1a667ba3=898e56d9-3d29-5ed2-9c9a-cc3a5d9474b5_=-- diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb index 47e642e91..c92c1e3c8 100644 --- a/test/unit/mail_handler_test.rb +++ b/test/unit/mail_handler_test.rb @@ -578,6 +578,22 @@ class MailHandlerTest < ActiveSupport::TestCase assert_equal 'd8e8fca2dc0f896fd7cb4cb0031ba249', attachment.digest end + def test_mail_with_attachment_latin2 + issue = submit_email( + 'ticket_with_text_attachment_iso-8859-2.eml', + :issue => {:project => 'ecookbook'} + ) + assert_kind_of Issue, issue + assert_equal 1, issue.attachments.size + attachment = issue.attachments.first + assert_equal 'latin2.txt', attachment.filename + assert_equal 19, attachment.filesize + assert File.exist?(attachment.diskfile) + assert_equal 19, File.size(attachment.diskfile) + content = "p\xF8\xEDli\xB9 \xBEluou\xE8k\xFD k\xF9n".force_encoding('CP852') + assert_equal content, File.read(attachment.diskfile).force_encoding('CP852') + end + 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 -- 2.39.5