mirror of
https://github.com/meineerde/redmine.git
synced 2026-03-09 18:53:05 +00:00
When creating issues by receiving an email, watchers created via CC in the mail don't get an email notification (#23278).
git-svn-id: http://svn.redmine.org/redmine/trunk@15609 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
4c78b63d58
commit
f416657d56
@ -40,12 +40,16 @@ module Redmine
|
||||
|
||||
# Adds user as a watcher
|
||||
def add_watcher(user)
|
||||
# Rails does not reset the has_many :through association
|
||||
watcher_users.reset
|
||||
self.watchers << Watcher.new(:user => user)
|
||||
end
|
||||
|
||||
# Removes user from the watchers list
|
||||
def remove_watcher(user)
|
||||
return nil unless user && user.is_a?(User)
|
||||
# Rails does not reset the has_many :through association
|
||||
watcher_users.reset
|
||||
watchers.where(:user_id => user.id).delete_all
|
||||
end
|
||||
|
||||
|
||||
@ -277,12 +277,13 @@ class MailHandlerTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
def test_add_issue_should_add_cc_as_watchers
|
||||
user = User.find_by_mail('dlopper@somenet.foo')
|
||||
issue = submit_email('ticket_with_cc.eml', :issue => {:project => 'ecookbook'})
|
||||
assert issue.is_a?(Issue)
|
||||
assert !issue.new_record?
|
||||
issue.reload
|
||||
assert issue.watched_by?(User.find_by_mail('dlopper@somenet.foo'))
|
||||
assert issue.watched_by?(user)
|
||||
assert_equal 1, issue.watcher_user_ids.size
|
||||
assert_include user, issue.watcher_users.to_a
|
||||
end
|
||||
|
||||
def test_add_issue_from_additional_email_address
|
||||
|
||||
@ -60,6 +60,15 @@ class WatcherTest < ActiveSupport::TestCase
|
||||
assert_kind_of User, watcher_users.first
|
||||
end
|
||||
|
||||
def test_watcher_users_should_be_reloaded_after_adding_a_watcher
|
||||
issue = Issue.find(2)
|
||||
user = User.generate!
|
||||
|
||||
assert_difference 'issue.watcher_users.to_a.size' do
|
||||
issue.add_watcher user
|
||||
end
|
||||
end
|
||||
|
||||
def test_watcher_users_should_not_validate_user
|
||||
User.where(:id => 1).update_all("firstname = ''")
|
||||
@user.reload
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user