105 lines
3.1 KiB
Ruby
105 lines
3.1 KiB
Ruby
require File.expand_path '../../test_helper', __FILE__
|
|
|
|
class WatcherTest < Additionals::TestCase
|
|
fixtures :projects, :users, :email_addresses, :members, :member_roles, :roles, :enabled_modules,
|
|
:issues, :issue_statuses, :enumerations, :trackers, :projects_trackers,
|
|
:boards, :messages,
|
|
:wikis, :wiki_pages,
|
|
:watchers
|
|
|
|
def setup
|
|
prepare_tests
|
|
@author = users :users_001
|
|
@assigned_user = users :users_002
|
|
@changing_user = users :users_004
|
|
end
|
|
|
|
def test_new_issue_with_no_autowatch
|
|
with_additionals_settings issue_autowatch_involved: 0 do
|
|
User.current = @author
|
|
issue = Issue.generate author_id: @author.id
|
|
issue.save
|
|
assert_equal 0, issue.watchers.count
|
|
assert_not issue.watched_by?(@author)
|
|
end
|
|
end
|
|
|
|
def test_new_issue_with_no_autowatch_by_user
|
|
with_additionals_settings(issue_autowatch_involved: 1) do
|
|
User.current = @author
|
|
User.current.pref.update_attribute :autowatch_involved_issue, false
|
|
|
|
issue = Issue.generate(author_id: @author.id)
|
|
issue.save
|
|
assert_equal 0, issue.watchers.count
|
|
assert_not issue.watched_by?(@author)
|
|
end
|
|
end
|
|
|
|
def test_new_issue_with_author_watch_only
|
|
with_additionals_settings(issue_autowatch_involved: 1) do
|
|
User.current = @author
|
|
issue = Issue.generate(author_id: @author.id)
|
|
issue.save
|
|
assert_equal 1, issue.watchers.count
|
|
assert issue.watched_by?(@author)
|
|
end
|
|
end
|
|
|
|
def test_new_issue_with_author_and_assigned_to_watchers
|
|
with_additionals_settings(issue_autowatch_involved: 1) do
|
|
User.current = @author
|
|
issue = Issue.generate(author_id: @author.id, assigned_to: @assigned_user)
|
|
issue.save
|
|
|
|
assert_equal 2, issue.watchers.count
|
|
assert issue.watched_by?(@author)
|
|
assert issue.watched_by?(@assigned_user)
|
|
end
|
|
end
|
|
|
|
def test_issue_do_not_add_author_with_user_change
|
|
with_additionals_settings(issue_autowatch_involved: 1) do
|
|
User.current = @author
|
|
|
|
issue = Issue.generate(author_id: @author.id, assigned_to: @assigned_user)
|
|
issue.save
|
|
assert_equal 2, issue.watchers.count
|
|
|
|
issue.remove_watcher(@author)
|
|
issue.reload
|
|
assert_equal 1, issue.watchers.count
|
|
|
|
User.current = @changing_user
|
|
issue.subject = 'Changing....'
|
|
issue.save
|
|
|
|
assert_equal 2, issue.watchers.count
|
|
assert issue.watched_by?(@changing_user)
|
|
assert issue.watched_by?(@assigned_user)
|
|
end
|
|
end
|
|
|
|
def test_issue_do_not_add_assigned_to_with_user_change
|
|
with_additionals_settings(issue_autowatch_involved: 1) do
|
|
User.current = @author
|
|
|
|
issue = Issue.generate(author_id: @author.id, assigned_to: @assigned_user)
|
|
issue.save
|
|
assert_equal 2, issue.watchers.count
|
|
|
|
issue.remove_watcher(@assigned_user)
|
|
issue.reload
|
|
assert_equal 1, issue.watchers.count
|
|
|
|
User.current = @changing_user
|
|
issue.subject = 'Changing....'
|
|
issue.save
|
|
|
|
assert_equal 2, issue.watchers.count
|
|
assert issue.watched_by?(@author)
|
|
assert issue.watched_by?(@changing_user)
|
|
end
|
|
end
|
|
end
|