summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/message_observer.rb2
-rw-r--r--test/functional/messages_controller_test.rb12
2 files changed, 14 insertions, 0 deletions
diff --git a/app/models/message_observer.rb b/app/models/message_observer.rb
index c26805c1b..043988172 100644
--- a/app/models/message_observer.rb
+++ b/app/models/message_observer.rb
@@ -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
diff --git a/test/functional/messages_controller_test.rb b/test/functional/messages_controller_test.rb
index dcfe0caa7..1fe8d086a 100644
--- a/test/functional/messages_controller_test.rb
+++ b/test/functional/messages_controller_test.rb
@@ -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