diff test/unit/.svn/text-base/mail_handler_test.rb.svn-base @ 441:cbce1fd3b1b7 redmine-1.2

Update to Redmine 1.2-stable branch (Redmine SVN rev 6000)
author Chris Cannam
date Mon, 06 Jun 2011 14:24:13 +0100
parents 8661b858af72
children 0c939c159af4
line wrap: on
line diff
--- a/test/unit/.svn/text-base/mail_handler_test.rb.svn-base	Thu Mar 03 11:42:28 2011 +0000
+++ b/test/unit/.svn/text-base/mail_handler_test.rb.svn-base	Mon Jun 06 14:24:13 2011 +0100
@@ -1,18 +1,18 @@
 # encoding: utf-8
 #
 # Redmine - project management software
-# Copyright (C) 2006-2009  Jean-Philippe Lang
+# Copyright (C) 2006-2011  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
@@ -20,7 +20,7 @@
 require File.expand_path('../../test_helper', __FILE__)
 
 class MailHandlerTest < ActiveSupport::TestCase
-  fixtures :users, :projects, 
+  fixtures :users, :projects,
                    :enabled_modules,
                    :roles,
                    :members,
@@ -39,14 +39,14 @@
                    :custom_fields_projects,
                    :boards,
                    :messages
-  
+
   FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler'
-  
+
   def setup
     ActionMailer::Base.deliveries.clear
     Setting.notified_events = Redmine::Notifiable.all.collect(&:name)
   end
-  
+
   def test_add_issue
     ActionMailer::Base.deliveries.clear
     # This email contains: 'Project: onlinestore'
@@ -70,12 +70,13 @@
     # keywords should be removed from the email body
     assert !issue.description.match(/^Project:/i)
     assert !issue.description.match(/^Status:/i)
+    assert !issue.description.match(/^Start Date:/i)
     # Email notification should be sent
     mail = ActionMailer::Base.deliveries.last
     assert_not_nil mail
     assert mail.subject.include?('New ticket on a given project')
   end
-  
+
   def test_add_issue_with_default_tracker
     # This email contains: 'Project: onlinestore'
     issue = submit_email('ticket_on_given_project.eml', :issue => {:tracker => 'Support request'})
@@ -94,7 +95,7 @@
     assert_equal Project.find(2), issue.project
     assert_equal IssueStatus.find_by_name("Resolved"), issue.status
   end
-  
+
   def test_add_issue_with_attributes_override
     issue = submit_email('ticket_with_attributes.eml', :allow_override => 'tracker,category,priority')
     assert issue.is_a?(Issue)
@@ -108,7 +109,7 @@
     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_partial_attributes_override
     issue = submit_email('ticket_with_attributes.eml', :issue => {:priority => 'High'}, :allow_override => ['tracker'])
     assert issue.is_a?(Issue)
@@ -122,7 +123,7 @@
     assert_equal 'High', issue.priority.to_s
     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)
@@ -137,7 +138,6 @@
     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)
@@ -153,7 +153,7 @@
     assert_equal 'image/jpeg', issue.attachments.first.content_type
     assert_equal 10790, issue.attachments.first.filesize
   end
-  
+
   def test_add_issue_with_custom_fields
     issue = submit_email('ticket_with_custom_fields.eml', :issue => {:project => 'onlinestore'})
     assert issue.is_a?(Issue)
@@ -163,7 +163,7 @@
     assert_equal 'Value for a custom field', issue.custom_value_for(CustomField.find_by_name('Searchable field')).value
     assert !issue.description.match(/^searchable field:/i)
   end
-  
+
   def test_add_issue_with_cc
     issue = submit_email('ticket_with_cc.eml', :issue => {:project => 'ecookbook'})
     assert issue.is_a?(Issue)
@@ -172,13 +172,13 @@
     assert issue.watched_by?(User.find_by_mail('dlopper@somenet.foo'))
     assert_equal 1, issue.watcher_user_ids.size
   end
-  
+
   def test_add_issue_by_unknown_user
     assert_no_difference 'User.count' do
       assert_equal false, submit_email('ticket_by_unknown_user.eml', :issue => {:project => 'ecookbook'})
     end
   end
-  
+
   def test_add_issue_by_anonymous_user
     Role.anonymous.add_permission!(:add_issues)
     assert_no_difference 'User.count' do
@@ -196,7 +196,7 @@
       assert issue.author.anonymous?
     end
   end
-  
+
   def test_add_issue_by_anonymous_user_on_private_project
     Role.anonymous.add_permission!(:add_issues)
     assert_no_difference 'User.count' do
@@ -205,7 +205,7 @@
       end
     end
   end
-  
+
   def test_add_issue_by_anonymous_user_on_private_project_without_permission_check
     assert_no_difference 'User.count' do
       assert_difference 'Issue.count' do
@@ -217,7 +217,7 @@
       end
     end
   end
-  
+
   def test_add_issue_by_created_user
     Setting.default_language = 'en'
     assert_difference 'User.count' do
@@ -227,7 +227,7 @@
       assert_equal 'john.doe@somenet.foo', issue.author.mail
       assert_equal 'John', issue.author.firstname
       assert_equal 'Doe', issue.author.lastname
-    
+
       # account information
       email = ActionMailer::Base.deliveries.first
       assert_not_nil email
@@ -237,7 +237,7 @@
       assert_equal issue.author, User.try_to_login(login, password)
     end
   end
-  
+
   def test_add_issue_without_from_header
     Role.anonymous.add_permission!(:add_issues)
     assert_equal false, submit_email('ticket_without_from_header.eml')
@@ -270,7 +270,7 @@
     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_japanese_keywords
     tracker = Tracker.create!(:name => '開発')
     Project.find(1).trackers << tracker
@@ -294,7 +294,7 @@
     assert issue.is_a?(Issue)
     assert_equal 1, ActionMailer::Base.deliveries.size
   end
-  
+
   def test_add_issue_note
     journal = submit_email('ticket_reply.eml')
     assert journal.is_a?(Journal)
@@ -318,6 +318,9 @@
     assert_equal '2010-12-31', issue.due_date.to_s
     assert_equal User.find_by_login('jsmith'), issue.assigned_to
     assert_equal "52.6", issue.custom_value_for(CustomField.find_by_name('Float field')).value
+    # keywords should be removed from the email body
+    assert !journal.notes.match(/^Status:/i)
+    assert !journal.notes.match(/^Start Date:/i)
   end
 
   def test_add_issue_note_should_send_email_notification
@@ -326,7 +329,7 @@
     assert journal.is_a?(Journal)
     assert_equal 1, ActionMailer::Base.deliveries.size
   end
-  
+
   def test_add_issue_note_should_not_set_defaults
     journal = submit_email('ticket_reply.eml', :issue => {:tracker => 'Support request', :priority => 'High'})
     assert journal.is_a?(Journal)
@@ -334,7 +337,7 @@
     assert_equal 'Feature request', journal.issue.tracker.name
     assert_equal 'Normal', journal.issue.priority.name
   end
-  
+
   def test_reply_to_a_message
     m = submit_email('message_reply.eml')
     assert m.is_a?(Message)
@@ -344,7 +347,7 @@
     # The email replies to message #2 which is part of the thread of message #1
     assert_equal Message.find(1), m.parent
   end
-  
+
   def test_reply_to_a_message_by_subject
     m = submit_email('message_reply_by_subject.eml')
     assert m.is_a?(Message)
@@ -353,7 +356,7 @@
     assert_equal 'Reply to the first post', m.subject
     assert_equal Message.find(1), m.parent
   end
-  
+
   def test_should_strip_tags_of_html_only_emails
     issue = submit_email('ticket_html_only.eml', :issue => {:project => 'ecookbook'})
     assert issue.is_a?(Issue)
@@ -381,7 +384,6 @@
       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)
@@ -396,39 +398,32 @@
       setup do
         Setting.mail_handler_body_delimiters = '--- Reply above. Do not remove this line. ---'
       end
-
       should "truncate the email at the delimiter with the quoted reply symbols (>)" do
         journal = submit_email('issue_update_with_quoted_reply_above.eml')
         assert journal.is_a?(Journal)
         assert journal.notes.include?('An update to the issue by the sender.')
         assert !journal.notes.match(Regexp.escape("--- Reply above. Do not remove this line. ---"))
         assert !journal.notes.include?('Looks like the JSON api for projects was missed.')
+      end
+    end
 
-      end
-
-    end
-    
     context "with multiple quoted replies (e.g. reply to a reply of a Redmine email notification)" do
       setup do
         Setting.mail_handler_body_delimiters = '--- Reply above. Do not remove this line. ---'
       end
-
       should "truncate the email at the delimiter with the quoted reply symbols (>)" do
         journal = submit_email('issue_update_with_multiple_quoted_reply_above.eml')
         assert journal.is_a?(Journal)
         assert journal.notes.include?('An update to the issue by the sender.')
         assert !journal.notes.match(Regexp.escape("--- Reply above. Do not remove this line. ---"))
         assert !journal.notes.include?('Looks like the JSON api for projects was missed.')
-
       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)
@@ -440,7 +435,7 @@
       end
     end
   end
-  
+
   def test_email_with_long_subject_line
     issue = submit_email('ticket_with_long_subject.eml')
     assert issue.is_a?(Issue)
@@ -448,7 +443,7 @@
   end
 
   private
-  
+
   def submit_email(filename, options={})
     raw = IO.read(File.join(FIXTURES_PATH, filename))
     MailHandler.receive(raw, options)