From 9886827a66dcb3762b7af7a3e9b34af7f92d6fee Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Wed, 12 Aug 2009 23:26:32 +0000 Subject: [PATCH] Allow spaces between the keyword and colon in incoming mail. (#3731) git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2837 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/mail_handler.rb | 2 +- test/unit/mail_handler_test.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb index 6d02ae3ed..599a473a6 100644 --- a/app/models/mail_handler.rb +++ b/app/models/mail_handler.rb @@ -224,7 +224,7 @@ class MailHandler < ActionMailer::Base @keywords[attr] else @keywords[attr] = begin - if (options[:override] || @@handler_options[:allow_override].include?(attr.to_s)) && plain_text_body.gsub!(/^#{attr}:[ \t]*(.+)\s*$/i, '') + if (options[:override] || @@handler_options[:allow_override].include?(attr.to_s)) && plain_text_body.gsub!(/^#{attr}[ \t]*:[ \t]*(.+)\s*$/i, '') $1.strip elsif !@@handler_options[:issue][attr].blank? @@handler_options[:issue][attr] diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb index 2d780d93d..9a9d7d805 100644 --- a/test/unit/mail_handler_test.rb +++ b/test/unit/mail_handler_test.rb @@ -95,6 +95,21 @@ class MailHandlerTest < Test::Unit::TestCase assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.') end + def test_add_issue_with_spaces_between_attribute_and_separator + issue = submit_email('ticket_with_spaces_between_attribute_and_separator.eml', :allow_override => 'tracker,category,priority') + assert issue.is_a?(Issue) + assert !issue.new_record? + issue.reload + assert_equal 'New ticket on a given project', issue.subject + assert_equal User.find_by_login('jsmith'), issue.author + assert_equal Project.find(2), issue.project + assert_equal 'Feature request', issue.tracker.to_s + assert_equal 'Stock management', issue.category.to_s + assert_equal 'Urgent', issue.priority.to_s + assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.') + end + + def test_add_issue_with_attachment_to_specific_project issue = submit_email('ticket_with_attachment.eml', :issue => {:project => 'onlinestore'}) assert issue.is_a?(Issue)