Commit ed034f12 authored by jplang's avatar jplang

Ignore email keywords after truncation line (#8758).

git-svn-id: https://svn.redmine.org/redmine/trunk@13413 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 5aa4330c
......@@ -319,7 +319,7 @@ class MailHandler < ActionMailer::Base
else
@keywords[attr] = begin
if (options[:override] || @@handler_options[:allow_override].include?(attr.to_s)) &&
(v = extract_keyword!(plain_text_body, attr, options[:format]))
(v = extract_keyword!(cleaned_up_text_body, attr, options[:format]))
v
elsif !@@handler_options[:issue][attr].blank?
@@handler_options[:issue][attr]
......@@ -347,7 +347,7 @@ class MailHandler < ActionMailer::Base
regexp = /^(#{keys.join('|')})[ \t]*:[ \t]*(#{format})\s*$/i
if m = text.match(regexp)
keyword = m[2].strip
text.gsub!(regexp, '')
text.sub!(regexp, '')
end
keyword
end
......@@ -436,7 +436,7 @@ class MailHandler < ActionMailer::Base
end
def cleaned_up_text_body
cleanup_body(plain_text_body)
@cleaned_up_text_body ||= cleanup_body(plain_text_body)
end
def cleaned_up_subject
......
......@@ -30,6 +30,15 @@ sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
Project: onlinestore
Status: Resolved
due date: 2010-12-31
Start Date:2010-01-01
Assigned to: John Smith
fixed version: alpha
estimated hours: 2.5
done ratio: 30
--- This line starts with a delimiter and should not be stripped
This paragraph is before delimiters.
......@@ -49,12 +58,3 @@ dictum et, ligula. Sed erat nibh, gravida in, accumsan non, placerat sed,
massa. Sed sodales, ante fermentum ultricies sollicitudin, massa leo
pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.
Project: onlinestore
Status: Resolved
due date: 2010-12-31
Start Date:2010-01-01
Assigned to: John Smith
fixed version: alpha
estimated hours: 2.5
done ratio: 30
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>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: New ticket on a given project
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
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Project: ecookbook
Priority: High
Priority: Low
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>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: New ticket on a given project
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
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Project: ecookbook
== DELIMITER ==
Priority: High
......@@ -856,6 +856,20 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal issue.subject, 'New ticket on a given project with a very long subject line which exceeds 255 chars and should not be ignored but chopped off. And if the subject line is still not long enough, we just add more text. And more text. Wow, this is really annoying. Especially, if you have nothing to say...'[0,255]
end
def test_first_keyword_should_be_matched
issue = submit_email('ticket_with_duplicate_keyword.eml', :allow_override => 'priority')
assert issue.is_a?(Issue)
assert_equal 'High', issue.priority.name
end
def test_keyword_after_delimiter_should_be_ignored
with_settings :mail_handler_body_delimiters => "== DELIMITER ==" do
issue = submit_email('ticket_with_keyword_after_delimiter.eml', :allow_override => 'priority')
assert issue.is_a?(Issue)
assert_equal 'Normal', issue.priority.name
end
end
def test_new_user_from_attributes_should_return_valid_user
to_test = {
# [address, name] => [login, firstname, lastname]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment