diff test/unit/mail_handler_test.rb @ 119:8661b858af72

* Update to Redmine trunk rev 4705
author Chris Cannam
date Thu, 13 Jan 2011 14:12:06 +0000
parents 94944d00e43c
children cbce1fd3b1b7
line wrap: on
line diff
--- a/test/unit/mail_handler_test.rb	Fri Nov 19 14:05:24 2010 +0000
+++ b/test/unit/mail_handler_test.rb	Thu Jan 13 14:12:06 2011 +0000
@@ -17,7 +17,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class MailHandlerTest < ActiveSupport::TestCase
   fixtures :users, :projects, 
@@ -36,6 +36,7 @@
                    :issue_categories,
                    :custom_fields,
                    :custom_fields_trackers,
+                   :custom_fields_projects,
                    :boards,
                    :messages
   
@@ -53,9 +54,10 @@
     assert issue.is_a?(Issue)
     assert !issue.new_record?
     issue.reload
+    assert_equal Project.find(2), issue.project
+    assert_equal issue.project.trackers.first, issue.tracker
     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 IssueStatus.find_by_name('Resolved'), issue.status
     assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.')
     assert_equal '2010-01-01', issue.start_date.to_s
@@ -64,6 +66,7 @@
     assert_equal Version.find_by_name('alpha'), issue.fixed_version
     assert_equal 2.5, issue.estimated_hours
     assert_equal 30, issue.done_ratio
+    assert_equal [issue.id, 1, 2], [issue.root_id, issue.lft, issue.rgt]
     # keywords should be removed from the email body
     assert !issue.description.match(/^Project:/i)
     assert !issue.description.match(/^Status:/i)
@@ -72,6 +75,15 @@
     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'})
+    assert issue.is_a?(Issue)
+    assert !issue.new_record?
+    issue.reload
+    assert_equal 'Support request', issue.tracker.name
+  end
 
   def test_add_issue_with_status
     # This email contains: 'Project: onlinestore' and 'Status: Resolved'
@@ -201,6 +213,7 @@
         assert issue.is_a?(Issue)
         assert issue.author.anonymous?
         assert !issue.project.is_public?
+        assert_equal [issue.id, 1, 2], [issue.root_id, issue.lft, issue.rgt]
       end
     end
   end
@@ -288,6 +301,7 @@
     assert_equal User.find_by_login('jsmith'), journal.user
     assert_equal Issue.find(2), journal.journalized
     assert_match /This is reply/, journal.notes
+    assert_equal 'Feature request', journal.issue.tracker.name
   end
 
   def test_add_issue_note_with_attribute_changes
@@ -298,11 +312,12 @@
     assert_equal User.find_by_login('jsmith'), journal.user
     assert_equal Issue.find(2), journal.journalized
     assert_match /This is reply/, journal.notes
+    assert_equal 'Feature request', journal.issue.tracker.name
     assert_equal IssueStatus.find_by_name("Resolved"), issue.status
     assert_equal '2010-01-01', issue.start_date.to_s
     assert_equal '2010-12-31', issue.due_date.to_s
     assert_equal User.find_by_login('jsmith'), issue.assigned_to
-    assert_equal 'Updated custom value', issue.custom_value_for(CustomField.find_by_name('Searchable field')).value
+    assert_equal "52.6", issue.custom_value_for(CustomField.find_by_name('Float field')).value
   end
 
   def test_add_issue_note_should_send_email_notification
@@ -312,6 +327,14 @@
     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)
+    assert_match /This is reply/, journal.notes
+    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)