summaryrefslogtreecommitdiffstats
path: root/test/unit/mail_handler_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/mail_handler_test.rb')
-rw-r--r--test/unit/mail_handler_test.rb52
1 files changed, 52 insertions, 0 deletions
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