diff options
author | Eric Davis <edavis@littlestreamsoftware.com> | 2010-11-02 19:00:31 +0000 |
---|---|---|
committer | Eric Davis <edavis@littlestreamsoftware.com> | 2010-11-02 19:00:31 +0000 |
commit | 0395eb99decaac54dc8acf6162b3129893341be0 (patch) | |
tree | 134bc8837aab44633bfd8d5375c10c2c97912196 /test | |
parent | a04d64881cca1f741437cb57e44f3434bd8a7eb1 (diff) | |
download | redmine-0395eb99decaac54dc8acf6162b3129893341be0.tar.gz redmine-0395eb99decaac54dc8acf6162b3129893341be0.zip |
Remove email quotes (>) when searching for incoming email delimiters. #2852 #6628
Changes the email truncation so a delimiter can be prefixed by email
quotes or spaces ("> Eric said..."). This will let it be combined with
a "--- Reply above ---" delimiter to match "> --- Reply above ---"
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4361 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
3 files changed, 128 insertions, 0 deletions
diff --git a/test/fixtures/mail_handler/issue_update_with_multiple_quoted_reply_above.eml b/test/fixtures/mail_handler/issue_update_with_multiple_quoted_reply_above.eml new file mode 100644 index 000000000..ff8f63fda --- /dev/null +++ b/test/fixtures/mail_handler/issue_update_with_multiple_quoted_reply_above.eml @@ -0,0 +1,48 @@ +Return-Path: <JSmith@somenet.foo>
+Received: from osiris ([127.0.0.1])
+ by OSIRIS
+ with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
+Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
+In-Reply-To: <redmine.issue-2.20060719210421@osiris>
+From: "John Smith" <JSmith@somenet.foo>
+To: <redmine@somenet.foo>
+Subject: Re: update to issue 2
+Date: Sun, 22 Jun 2008 12:28:07 +0200
+MIME-Version: 1.0
+Content-Type: text/plain;
+ format=flowed;
+ charset="iso-8859-1";
+ reply-type=original
+Content-Transfer-Encoding: 7bit
+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
+
+An update to the issue by the sender.
+
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
+turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
+blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
+sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
+in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
+sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
+id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
+eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
+sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
+malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
+platea dictumst.
+
+>> > --- Reply above. Do not remove this line. ---
+>> >
+>> > Issue #6779 has been updated by Eric Davis.
+>> >
+>> > Subject changed from Projects with JSON to Project JSON API
+>> > Status changed from New to Assigned
+>> > Assignee set to Eric Davis
+>> > Priority changed from Low to Normal
+>> > Estimated time deleted (1.00)
+>> >
+>> > Looks like the JSON api for projects was missed. I'm going to be
+>> > reviewing the existing APIs and trying to clean them up over the next
+>> > few weeks.
diff --git a/test/fixtures/mail_handler/issue_update_with_quoted_reply_above.eml b/test/fixtures/mail_handler/issue_update_with_quoted_reply_above.eml new file mode 100644 index 000000000..848382ca4 --- /dev/null +++ b/test/fixtures/mail_handler/issue_update_with_quoted_reply_above.eml @@ -0,0 +1,48 @@ +Return-Path: <JSmith@somenet.foo>
+Received: from osiris ([127.0.0.1])
+ by OSIRIS
+ with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
+Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
+In-Reply-To: <redmine.issue-2.20060719210421@osiris>
+From: "John Smith" <JSmith@somenet.foo>
+To: <redmine@somenet.foo>
+Subject: Re: update to issue 2
+Date: Sun, 22 Jun 2008 12:28:07 +0200
+MIME-Version: 1.0
+Content-Type: text/plain;
+ format=flowed;
+ charset="iso-8859-1";
+ reply-type=original
+Content-Transfer-Encoding: 7bit
+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
+
+An update to the issue by the sender.
+
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
+turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
+blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
+sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
+in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
+sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
+id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
+eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
+sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
+malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
+platea dictumst.
+
+> --- Reply above. Do not remove this line. ---
+>
+> Issue #6779 has been updated by Eric Davis.
+>
+> Subject changed from Projects with JSON to Project JSON API
+> Status changed from New to Assigned
+> Assignee set to Eric Davis
+> Priority changed from Low to Normal
+> Estimated time deleted (1.00)
+>
+> Looks like the JSON api for projects was missed. I'm going to be
+> reviewing the existing APIs and trying to clean them up over the next
+> few weeks.
diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb index 947845a58..e59d78be9 100644 --- a/test/unit/mail_handler_test.rb +++ b/test/unit/mail_handler_test.rb @@ -335,6 +335,38 @@ class MailHandlerTest < ActiveSupport::TestCase end end + context "with a single quoted reply (e.g. reply to a Redmine email notification)" do + setup do + Setting.mail_handler_body_delimiters = '--- Reply above. Do not remove this line. ---' + end + + should "truncate the email at the delimiter with the quoted reply symbols (>)" do + journal = submit_email('issue_update_with_quoted_reply_above.eml') + assert journal.is_a?(Journal) + assert journal.notes.include?('An update to the issue by the sender.') + assert !journal.notes.match(Regexp.escape("--- Reply above. Do not remove this line. ---")) + assert !journal.notes.include?('Looks like the JSON api for projects was missed.') + + end + + end + + context "with multiple quoted replies (e.g. reply to a reply of a Redmine email notification)" do + setup do + Setting.mail_handler_body_delimiters = '--- Reply above. Do not remove this line. ---' + end + + should "truncate the email at the delimiter with the quoted reply symbols (>)" do + journal = submit_email('issue_update_with_multiple_quoted_reply_above.eml') + assert journal.is_a?(Journal) + assert journal.notes.include?('An update to the issue by the sender.') + assert !journal.notes.match(Regexp.escape("--- Reply above. Do not remove this line. ---")) + assert !journal.notes.include?('Looks like the JSON api for projects was missed.') + + end + + end + context "with multiple strings" do setup do Setting.mail_handler_body_delimiters = "---\nBREAK" |