summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2018-01-07 21:47:48 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2018-01-07 21:47:48 +0000
commit19fdcd7a1faafb8ed8244ec7b147fd572748a984 (patch)
treeb7f9046216bdf4c6b6836e5438e7b0a5c8c05263
parente8bc1dbaa80dd714254da9c19e4ffaae4fbf9736 (diff)
Merged r17147 to 3.4-stable (#27885).
git-svn-id: http://svn.redmine.org/redmine/branches/3.4-stable@17148 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rwxr-xr-xapp/models/mail_handler.rb1
-rw-r--r--test/fixtures/mail_handler/ticket_with_empty_attachment.eml58
-rw-r--r--test/unit/mail_handler_test.rb8
3 files changed, 67 insertions, 0 deletions
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb
index 9bcc1b12d..518e8c84b 100755
--- a/app/models/mail_handler.rb
+++ b/app/models/mail_handler.rb
@@ -296,6 +296,7 @@ class MailHandler < ActionMailer::Base
if email.attachments && email.attachments.any?
email.attachments.each do |attachment|
next unless accept_attachment?(attachment)
+ next unless attachment.body.decoded.size > 0
obj.attachments << Attachment.create(:container => obj,
:file => attachment.body.decoded,
:filename => attachment.filename,
diff --git a/test/fixtures/mail_handler/ticket_with_empty_attachment.eml b/test/fixtures/mail_handler/ticket_with_empty_attachment.eml
new file mode 100644
index 000000000..2dfc88b8d
--- /dev/null
+++ b/test/fixtures/mail_handler/ticket_with_empty_attachment.eml
@@ -0,0 +1,58 @@
+Return-Path: <jsmith@somenet.foo>
+Received: from osiris ([127.0.0.1])
+ by OSIRIS
+ with hMailServer ; Sat, 21 Jun 2008 15:53:25 +0200
+Message-ID: <002301c8d3a6$2cdf6950$0a00a8c0@osiris>
+From: "John Smith" <jsmith@somenet.foo>
+To: <redmine@somenet.foo>
+Subject: Ticket created by email with attachment
+Date: Sat, 21 Jun 2008 15:53:25 +0200
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="----=_NextPart_000_001F_01C8D3B6.F05C5270"
+X-Priority: 3
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook Express 6.00.2900.2869
+X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
+
+This is a multi-part message in MIME format.
+
+------=_NextPart_000_001F_01C8D3B6.F05C5270
+Content-Type: multipart/alternative;
+ boundary="----=_NextPart_001_0020_01C8D3B6.F05C5270"
+
+
+------=_NextPart_001_0020_01C8D3B6.F05C5270
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+
+This is a new ticket with attachments
+------=_NextPart_001_0020_01C8D3B6.F05C5270
+Content-Type: text/html;
+ charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD>
+<META http-equiv=3DContent-Type content=3D"text/html; =
+charset=3Diso-8859-1">
+<META content=3D"MSHTML 6.00.2900.2883" name=3DGENERATOR>
+<STYLE></STYLE>
+</HEAD>
+<BODY bgColor=3D#ffffff>
+<DIV><FONT face=3DArial size=3D2>This is&nbsp; a new ticket with=20
+attachments</FONT></DIV></BODY></HTML>
+
+------=_NextPart_001_0020_01C8D3B6.F05C5270--
+
+------=_NextPart_000_001F_01C8D3B6.F05C5270
+Content-Type: application/json;
+ name="response.json"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment;
+ filename="response.json"
+
+
+------=_NextPart_000_001F_01C8D3B6.F05C5270--
+
diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb
index f17161c75..04da637c2 100644
--- a/test/unit/mail_handler_test.rb
+++ b/test/unit/mail_handler_test.rb
@@ -627,6 +627,14 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal content, File.read(attachment.diskfile).force_encoding('CP852')
end
+ def test_empty_attachment_should_not_be_imported
+ issue = submit_email(
+ 'ticket_with_empty_attachment.eml',
+ issue: { project: 'ecookbook' }
+ )
+ assert_equal 0, issue.attachments.size
+ 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