Mercurial > hg > soundsoftware-site
comparison test/unit/.svn/text-base/mail_handler_test.rb.svn-base @ 119:8661b858af72
* Update to Redmine trunk rev 4705
author | Chris Cannam |
---|---|
date | Thu, 13 Jan 2011 14:12:06 +0000 |
parents | 94944d00e43c |
children | cbce1fd3b1b7 |
comparison
equal
deleted
inserted
replaced
39:150ceac17a8d | 119:8661b858af72 |
---|---|
15 # | 15 # |
16 # You should have received a copy of the GNU General Public License | 16 # You should have received a copy of the GNU General Public License |
17 # along with this program; if not, write to the Free Software | 17 # along with this program; if not, write to the Free Software |
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | 18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
19 | 19 |
20 require File.dirname(__FILE__) + '/../test_helper' | 20 require File.expand_path('../../test_helper', __FILE__) |
21 | 21 |
22 class MailHandlerTest < ActiveSupport::TestCase | 22 class MailHandlerTest < ActiveSupport::TestCase |
23 fixtures :users, :projects, | 23 fixtures :users, :projects, |
24 :enabled_modules, | 24 :enabled_modules, |
25 :roles, | 25 :roles, |
34 :versions, | 34 :versions, |
35 :enumerations, | 35 :enumerations, |
36 :issue_categories, | 36 :issue_categories, |
37 :custom_fields, | 37 :custom_fields, |
38 :custom_fields_trackers, | 38 :custom_fields_trackers, |
39 :custom_fields_projects, | |
39 :boards, | 40 :boards, |
40 :messages | 41 :messages |
41 | 42 |
42 FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler' | 43 FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler' |
43 | 44 |
51 # This email contains: 'Project: onlinestore' | 52 # This email contains: 'Project: onlinestore' |
52 issue = submit_email('ticket_on_given_project.eml') | 53 issue = submit_email('ticket_on_given_project.eml') |
53 assert issue.is_a?(Issue) | 54 assert issue.is_a?(Issue) |
54 assert !issue.new_record? | 55 assert !issue.new_record? |
55 issue.reload | 56 issue.reload |
57 assert_equal Project.find(2), issue.project | |
58 assert_equal issue.project.trackers.first, issue.tracker | |
56 assert_equal 'New ticket on a given project', issue.subject | 59 assert_equal 'New ticket on a given project', issue.subject |
57 assert_equal User.find_by_login('jsmith'), issue.author | 60 assert_equal User.find_by_login('jsmith'), issue.author |
58 assert_equal Project.find(2), issue.project | |
59 assert_equal IssueStatus.find_by_name('Resolved'), issue.status | 61 assert_equal IssueStatus.find_by_name('Resolved'), issue.status |
60 assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.') | 62 assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.') |
61 assert_equal '2010-01-01', issue.start_date.to_s | 63 assert_equal '2010-01-01', issue.start_date.to_s |
62 assert_equal '2010-12-31', issue.due_date.to_s | 64 assert_equal '2010-12-31', issue.due_date.to_s |
63 assert_equal User.find_by_login('jsmith'), issue.assigned_to | 65 assert_equal User.find_by_login('jsmith'), issue.assigned_to |
64 assert_equal Version.find_by_name('alpha'), issue.fixed_version | 66 assert_equal Version.find_by_name('alpha'), issue.fixed_version |
65 assert_equal 2.5, issue.estimated_hours | 67 assert_equal 2.5, issue.estimated_hours |
66 assert_equal 30, issue.done_ratio | 68 assert_equal 30, issue.done_ratio |
69 assert_equal [issue.id, 1, 2], [issue.root_id, issue.lft, issue.rgt] | |
67 # keywords should be removed from the email body | 70 # keywords should be removed from the email body |
68 assert !issue.description.match(/^Project:/i) | 71 assert !issue.description.match(/^Project:/i) |
69 assert !issue.description.match(/^Status:/i) | 72 assert !issue.description.match(/^Status:/i) |
70 # Email notification should be sent | 73 # Email notification should be sent |
71 mail = ActionMailer::Base.deliveries.last | 74 mail = ActionMailer::Base.deliveries.last |
72 assert_not_nil mail | 75 assert_not_nil mail |
73 assert mail.subject.include?('New ticket on a given project') | 76 assert mail.subject.include?('New ticket on a given project') |
74 end | 77 end |
78 | |
79 def test_add_issue_with_default_tracker | |
80 # This email contains: 'Project: onlinestore' | |
81 issue = submit_email('ticket_on_given_project.eml', :issue => {:tracker => 'Support request'}) | |
82 assert issue.is_a?(Issue) | |
83 assert !issue.new_record? | |
84 issue.reload | |
85 assert_equal 'Support request', issue.tracker.name | |
86 end | |
75 | 87 |
76 def test_add_issue_with_status | 88 def test_add_issue_with_status |
77 # This email contains: 'Project: onlinestore' and 'Status: Resolved' | 89 # This email contains: 'Project: onlinestore' and 'Status: Resolved' |
78 issue = submit_email('ticket_on_given_project.eml') | 90 issue = submit_email('ticket_on_given_project.eml') |
79 assert issue.is_a?(Issue) | 91 assert issue.is_a?(Issue) |
199 assert_difference 'Issue.count' do | 211 assert_difference 'Issue.count' do |
200 issue = submit_email('ticket_by_unknown_user.eml', :issue => {:project => 'onlinestore'}, :no_permission_check => '1', :unknown_user => 'accept') | 212 issue = submit_email('ticket_by_unknown_user.eml', :issue => {:project => 'onlinestore'}, :no_permission_check => '1', :unknown_user => 'accept') |
201 assert issue.is_a?(Issue) | 213 assert issue.is_a?(Issue) |
202 assert issue.author.anonymous? | 214 assert issue.author.anonymous? |
203 assert !issue.project.is_public? | 215 assert !issue.project.is_public? |
216 assert_equal [issue.id, 1, 2], [issue.root_id, issue.lft, issue.rgt] | |
204 end | 217 end |
205 end | 218 end |
206 end | 219 end |
207 | 220 |
208 def test_add_issue_by_created_user | 221 def test_add_issue_by_created_user |
286 journal = submit_email('ticket_reply.eml') | 299 journal = submit_email('ticket_reply.eml') |
287 assert journal.is_a?(Journal) | 300 assert journal.is_a?(Journal) |
288 assert_equal User.find_by_login('jsmith'), journal.user | 301 assert_equal User.find_by_login('jsmith'), journal.user |
289 assert_equal Issue.find(2), journal.journalized | 302 assert_equal Issue.find(2), journal.journalized |
290 assert_match /This is reply/, journal.notes | 303 assert_match /This is reply/, journal.notes |
304 assert_equal 'Feature request', journal.issue.tracker.name | |
291 end | 305 end |
292 | 306 |
293 def test_add_issue_note_with_attribute_changes | 307 def test_add_issue_note_with_attribute_changes |
294 # This email contains: 'Status: Resolved' | 308 # This email contains: 'Status: Resolved' |
295 journal = submit_email('ticket_reply_with_status.eml') | 309 journal = submit_email('ticket_reply_with_status.eml') |
296 assert journal.is_a?(Journal) | 310 assert journal.is_a?(Journal) |
297 issue = Issue.find(journal.issue.id) | 311 issue = Issue.find(journal.issue.id) |
298 assert_equal User.find_by_login('jsmith'), journal.user | 312 assert_equal User.find_by_login('jsmith'), journal.user |
299 assert_equal Issue.find(2), journal.journalized | 313 assert_equal Issue.find(2), journal.journalized |
300 assert_match /This is reply/, journal.notes | 314 assert_match /This is reply/, journal.notes |
315 assert_equal 'Feature request', journal.issue.tracker.name | |
301 assert_equal IssueStatus.find_by_name("Resolved"), issue.status | 316 assert_equal IssueStatus.find_by_name("Resolved"), issue.status |
302 assert_equal '2010-01-01', issue.start_date.to_s | 317 assert_equal '2010-01-01', issue.start_date.to_s |
303 assert_equal '2010-12-31', issue.due_date.to_s | 318 assert_equal '2010-12-31', issue.due_date.to_s |
304 assert_equal User.find_by_login('jsmith'), issue.assigned_to | 319 assert_equal User.find_by_login('jsmith'), issue.assigned_to |
305 assert_equal 'Updated custom value', issue.custom_value_for(CustomField.find_by_name('Searchable field')).value | 320 assert_equal "52.6", issue.custom_value_for(CustomField.find_by_name('Float field')).value |
306 end | 321 end |
307 | 322 |
308 def test_add_issue_note_should_send_email_notification | 323 def test_add_issue_note_should_send_email_notification |
309 ActionMailer::Base.deliveries.clear | 324 ActionMailer::Base.deliveries.clear |
310 journal = submit_email('ticket_reply.eml') | 325 journal = submit_email('ticket_reply.eml') |
311 assert journal.is_a?(Journal) | 326 assert journal.is_a?(Journal) |
312 assert_equal 1, ActionMailer::Base.deliveries.size | 327 assert_equal 1, ActionMailer::Base.deliveries.size |
328 end | |
329 | |
330 def test_add_issue_note_should_not_set_defaults | |
331 journal = submit_email('ticket_reply.eml', :issue => {:tracker => 'Support request', :priority => 'High'}) | |
332 assert journal.is_a?(Journal) | |
333 assert_match /This is reply/, journal.notes | |
334 assert_equal 'Feature request', journal.issue.tracker.name | |
335 assert_equal 'Normal', journal.issue.priority.name | |
313 end | 336 end |
314 | 337 |
315 def test_reply_to_a_message | 338 def test_reply_to_a_message |
316 m = submit_email('message_reply.eml') | 339 m = submit_email('message_reply.eml') |
317 assert m.is_a?(Message) | 340 assert m.is_a?(Message) |