]> source.dussan.org Git - redmine.git/commitdiff
Notify project members when a message is posted if they want to receive notifications...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 28 Apr 2008 09:25:51 +0000 (09:25 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 28 Apr 2008 09:25:51 +0000 (09:25 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1368 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/message_observer.rb
test/functional/messages_controller_test.rb

index c26805c1b93bffc4be33ae0924d8083161090c5e..0439881725a9594849b21c132d6221fd0e4951bf 100644 (file)
@@ -21,6 +21,8 @@ class MessageObserver < ActiveRecord::Observer
     recipients = ([message.root] + message.root.children).collect {|m| m.author.mail if m.author && m.author.active?}
     # send notification to the board watchers
     recipients += message.board.watcher_recipients
+    # send notification to project members who want to be notified
+    recipients += message.board.project.recipients
     recipients = recipients.compact.uniq
     Mailer.deliver_message_posted(message, recipients) if !recipients.empty? && Setting.notified_events.include?('message_posted')
   end
index dcfe0caa79f197c12b18edd86d4167d41d015563..1fe8d086a877d3c488cf3317368c6c376c9cefc3 100644 (file)
@@ -54,6 +54,9 @@ class MessagesControllerTest < Test::Unit::TestCase
   
   def test_post_new
     @request.session[:user_id] = 2
+    ActionMailer::Base.deliveries.clear
+    Setting.notified_events << 'message_posted'
+    
     post :new, :board_id => 1,
                :message => { :subject => 'Test created message',
                              :content => 'Message body'}
@@ -63,6 +66,15 @@ class MessagesControllerTest < Test::Unit::TestCase
     assert_equal 'Message body', message.content
     assert_equal 2, message.author_id
     assert_equal 1, message.board_id
+
+    mail = ActionMailer::Base.deliveries.last
+    assert_kind_of TMail::Mail, mail
+    assert_equal "[#{message.board.project.name} - #{message.board.name}] Test created message", mail.subject
+    assert mail.body.include?('Message body')
+    # author
+    assert mail.bcc.include?('jsmith@somenet.foo')
+    # project member
+    assert mail.bcc.include?('dlopper@somenet.foo')
   end
   
   def test_get_edit