diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-12-23 18:35:19 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-12-23 18:35:19 +0000 |
commit | a54fa93b2e28c369fde84b714ac8e20d2fa77b5b (patch) | |
tree | 3503d01e163920b9553becebb8f5c675b5a4521a /test | |
parent | e26eeef837f15de2d8f139ca838980eaa9de4da0 (diff) | |
download | redmine-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.eml | 14 | ||||
-rw-r--r-- | test/unit/mail_handler_test.rb | 52 |
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 |