mirror of
https://github.com/redmine/redmine.git
synced 2025-11-02 03:15:57 +01:00
Added observers to watch model objects for mail delivery instead of calling Mailer.
* Added an IssueObserver to watch when Issues are created * Added a JournalObserver to watch when Journals are created (Issue updates) * Added a NewsObserver for News items. * Added a DocumentObserver for Document notifications. * Setup IssuesController#new to use the IssueObserver. * Setup IssuesController#edit to use the IssueObserver. * Setup IssuesController#bulk_edit to use the JournalObserver. * Removed the Mailer call in Changeset#scan_commit_for_issue_ids, the JournalObserver will handle it. * Removed Mailer calls in MailHandler in favor of the Observers. #2659 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2637 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -503,6 +503,21 @@ class IssuesControllerTest < Test::Unit::TestCase
|
||||
assert [mail.bcc, mail.cc].flatten.include?(User.find(3).mail)
|
||||
end
|
||||
|
||||
def test_post_new_should_send_a_notification
|
||||
ActionMailer::Base.deliveries.clear
|
||||
@request.session[:user_id] = 2
|
||||
post :new, :project_id => 1,
|
||||
:issue => {:tracker_id => 3,
|
||||
:subject => 'This is the test_new issue',
|
||||
:description => 'This is the description',
|
||||
:priority_id => 5,
|
||||
:estimated_hours => '',
|
||||
:custom_field_values => {'2' => 'Value for field 2'}}
|
||||
assert_redirected_to :action => 'show'
|
||||
|
||||
assert_equal 1, ActionMailer::Base.deliveries.size
|
||||
end
|
||||
|
||||
def test_post_should_preserve_fields_values_on_validation_failure
|
||||
@request.session[:user_id] = 2
|
||||
post :new, :project_id => 1,
|
||||
@@ -760,6 +775,20 @@ class IssuesControllerTest < Test::Unit::TestCase
|
||||
# No email should be sent
|
||||
assert ActionMailer::Base.deliveries.empty?
|
||||
end
|
||||
|
||||
def test_post_edit_should_send_a_notification
|
||||
@request.session[:user_id] = 2
|
||||
ActionMailer::Base.deliveries.clear
|
||||
issue = Issue.find(1)
|
||||
old_subject = issue.subject
|
||||
new_subject = 'Subject modified by IssuesControllerTest#test_post_edit'
|
||||
|
||||
post :edit, :id => 1, :issue => {:subject => new_subject,
|
||||
:priority_id => '6',
|
||||
:category_id => '1' # no change
|
||||
}
|
||||
assert_equal 1, ActionMailer::Base.deliveries.size
|
||||
end
|
||||
|
||||
def test_post_edit_with_invalid_spent_time
|
||||
@request.session[:user_id] = 2
|
||||
@@ -797,6 +826,22 @@ class IssuesControllerTest < Test::Unit::TestCase
|
||||
assert_equal 1, journal.details.size
|
||||
end
|
||||
|
||||
def test_bullk_edit_should_send_a_notification
|
||||
@request.session[:user_id] = 2
|
||||
ActionMailer::Base.deliveries.clear
|
||||
post(:bulk_edit,
|
||||
{
|
||||
:ids => [1, 2],
|
||||
:priority_id => 7,
|
||||
:assigned_to_id => '',
|
||||
:custom_field_values => {'2' => ''},
|
||||
:notes => 'Bulk editing'
|
||||
})
|
||||
|
||||
assert_response 302
|
||||
assert_equal 2, ActionMailer::Base.deliveries.size
|
||||
end
|
||||
|
||||
def test_bulk_edit_custom_field
|
||||
@request.session[:user_id] = 2
|
||||
# update issues priority
|
||||
|
||||
Reference in New Issue
Block a user