summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-12-23 18:35:19 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-12-23 18:35:19 +0000
commita54fa93b2e28c369fde84b714ac8e20d2fa77b5b (patch)
tree3503d01e163920b9553becebb8f5c675b5a4521a /test
parente26eeef837f15de2d8f139ca838980eaa9de4da0 (diff)
downloadredmine-a54fa93b2e28c369fde84b714ac8e20d2fa77b5b.tar.gz
redmine-a54fa93b2e28c369fde84b714ac8e20d2fa77b5b.zip
Adds a setting to remove incoming emails body after a delimiter (#4409).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3226 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/fixtures/mail_handler/ticket_on_given_project.eml14
-rw-r--r--test/unit/mail_handler_test.rb52
2 files changed, 65 insertions, 1 deletions
diff --git a/test/fixtures/mail_handler/ticket_on_given_project.eml b/test/fixtures/mail_handler/ticket_on_given_project.eml
index 5dbd0dc2e..372e7302c 100644
--- a/test/fixtures/mail_handler/ticket_on_given_project.eml
+++ b/test/fixtures/mail_handler/ticket_on_given_project.eml
@@ -26,10 +26,22 @@ 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
+sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
+--- This line starts with a delimiter and should not be stripped
+
+This paragraph is before delimiters.
+
+BREAK
+
+This paragraph is between delimiters.
+
+---
+
+This paragraph is after the delimiter so it shouldn't appear.
+
Nulla et nunc. Duis pede. Donec et ipsum. Nam ut dui tincidunt neque
sollicitudin iaculis. Duis vitae dolor. Vestibulum eget massa. Sed lorem.
Nullam volutpat cursus erat. Cras felis dolor, lacinia quis, rutrum et,
diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb
index a4ae37345..21d2aedd5 100644
--- a/test/unit/mail_handler_test.rb
+++ b/test/unit/mail_handler_test.rb
@@ -279,10 +279,62 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal 'This is a html-only email.', issue.description
end
+ context "truncate emails based on the Setting" do
+ context "with no setting" do
+ setup do
+ Setting.mail_handler_body_delimiters = ''
+ end
+
+ should "add the entire email into the issue" do
+ issue = submit_email('ticket_on_given_project.eml')
+ assert_issue_created(issue)
+ assert issue.description.include?('---')
+ assert issue.description.include?('This paragraph is after the delimiter')
+ end
+ end
+
+ context "with a single string" do
+ setup do
+ Setting.mail_handler_body_delimiters = '---'
+ end
+
+ should "truncate the email at the delimiter for the issue" do
+ issue = submit_email('ticket_on_given_project.eml')
+ assert_issue_created(issue)
+ assert issue.description.include?('This paragraph is before delimiters')
+ assert issue.description.include?('--- This line starts with a delimiter')
+ assert !issue.description.match(/^---$/)
+ assert !issue.description.include?('This paragraph is after the delimiter')
+ end
+ end
+
+ context "with multiple strings" do
+ setup do
+ Setting.mail_handler_body_delimiters = "---\nBREAK"
+ end
+
+ should "truncate the email at the first delimiter found (BREAK)" do
+ issue = submit_email('ticket_on_given_project.eml')
+ assert_issue_created(issue)
+ assert issue.description.include?('This paragraph is before delimiters')
+ assert !issue.description.include?('BREAK')
+ assert !issue.description.include?('This paragraph is between delimiters')
+ assert !issue.description.match(/^---$/)
+ assert !issue.description.include?('This paragraph is after the delimiter')
+ end
+ end
+ end
+
private
def submit_email(filename, options={})
raw = IO.read(File.join(FIXTURES_PATH, filename))
MailHandler.receive(raw, options)
end
+
+ def assert_issue_created(issue)
+ assert issue.is_a?(Issue)
+ assert !issue.new_record?
+ issue.reload
+ end
end