##// END OF EJS Templates
The descendant count in the issues delete confirmation message is wrong if issues share some descendants....
The descendant count in the issues delete confirmation message is wrong if issues share some descendants. git-svn-id: http://svn.redmine.org/redmine/trunk@13818 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r13342:43b345511139
r13436:bfdd9f7c295d
Show More
watcher_test.rb
192 lines | 5.9 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 # Redmine - project management software
Toshi MARUYAMA
update copyright year (#15977)...
r12461 # Copyright (C) 2006-2014 Jean-Philippe Lang
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634 #
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634 #
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class WatcherTest < ActiveSupport::TestCase
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 fixtures :projects, :users, :members, :member_roles, :roles, :enabled_modules,
Jean-Baptiste Barth
Fixed test/unit/watcher_test.rb breaking when run alone (#12285)...
r10557 :issues, :issue_statuses, :enumerations, :trackers, :projects_trackers,
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 :boards, :messages,
:wikis, :wiki_pages,
:watchers
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450
def setup
@user = User.find(1)
@issue = Issue.find(1)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Toshi MARUYAMA
add unit test to validate watcher...
r7951 def test_validate
user = User.find(5)
assert !user.active?
watcher = Watcher.new(:user_id => user.id)
assert !watcher.save
end
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 def test_watch
assert @issue.add_watcher(@user)
@issue.reload
assert @issue.watchers.detect { |w| w.user == @user }
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 def test_cant_watch_twice
assert @issue.add_watcher(@user)
assert !@issue.add_watcher(@user)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 def test_watched_by
assert @issue.add_watcher(@user)
@issue.reload
assert @issue.watched_by?(@user)
assert Issue.watched_by(@user).include?(@issue)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Fixed: validation error on issue creation when trying to add an invalid user as a watcher (#5373)....
r5760 def test_watcher_users
watcher_users = Issue.find(2).watcher_users
Toshi MARUYAMA
Rails4 compatibility of WatcherTest#test_watcher_users...
r12469 assert_kind_of Array, watcher_users.collect{|w| w}
Jean-Philippe Lang
Fixed: validation error on issue creation when trying to add an invalid user as a watcher (#5373)....
r5760 assert_kind_of User, watcher_users.first
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Fixed: validation error on issue creation when trying to add an invalid user as a watcher (#5373)....
r5760 def test_watcher_users_should_not_validate_user
Toshi MARUYAMA
Rails4: replace deprecated Relation#update_all at WatcherTest...
r12278 User.where(:id => 1).update_all("firstname = ''")
Jean-Philippe Lang
Fixed: validation error on issue creation when trying to add an invalid user as a watcher (#5373)....
r5760 @user.reload
assert !@user.valid?
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Fixed: validation error on issue creation when trying to add an invalid user as a watcher (#5373)....
r5760 issue = Issue.new(:project => Project.find(1), :tracker_id => 1, :subject => "test", :author => User.find(2))
issue.watcher_users << @user
issue.save!
assert issue.watched_by?(@user)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Fixed: watchers selection lost when issue creation fails (#5406). #watched_by? was fixed in order to work with #watcher_user_ids= used in controllers on unsaved objects....
r3591 def test_watcher_user_ids
Jean-Philippe Lang
Fixed: validation error on issue creation when trying to add an invalid user as a watcher (#5373)....
r5760 assert_equal [1, 3], Issue.find(2).watcher_user_ids.sort
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Fixed: validation error on issue creation when trying to add an invalid user as a watcher (#5373)....
r5760 def test_watcher_user_ids=
Jean-Philippe Lang
Fixed: watchers selection lost when issue creation fails (#5406). #watched_by? was fixed in order to work with #watcher_user_ids= used in controllers on unsaved objects....
r3591 issue = Issue.new
issue.watcher_user_ids = ['1', '3']
assert issue.watched_by?(User.find(1))
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Override watcher_user_ids= to make ids uniq (#10538)....
r9141 def test_watcher_user_ids_should_make_ids_uniq
issue = Issue.new(:project => Project.find(1), :tracker_id => 1, :subject => "test", :author => User.find(2))
issue.watcher_user_ids = ['1', '3', '1']
issue.save!
assert_equal 2, issue.watchers.count
end
Jean-Philippe Lang
Do not propose users that can't view an issue as watchers (#7412)....
r5756 def test_addable_watcher_users
addable_watcher_users = @issue.addable_watcher_users
assert_kind_of Array, addable_watcher_users
assert_kind_of User, addable_watcher_users.first
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Do not propose users that can't view an issue as watchers (#7412)....
r5756 def test_addable_watcher_users_should_not_include_user_that_cannot_view_the_object
issue = Issue.new(:project => Project.find(1), :is_private => true)
assert_nil issue.addable_watcher_users.detect {|user| !issue.visible?(user)}
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Adds Watcher.any_watched? to check if at least one object of a collection is watched....
r11729 def test_any_watched_should_return_false_if_no_object_is_watched
objects = (0..2).map {Issue.generate!}
assert_equal false, Watcher.any_watched?(objects, @user)
end
def test_any_watched_should_return_true_if_one_object_is_watched
objects = (0..2).map {Issue.generate!}
objects.last.add_watcher(@user)
assert_equal true, Watcher.any_watched?(objects, @user)
end
def test_any_watched_should_return_false_with_no_object
assert_equal false, Watcher.any_watched?([], @user)
end
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 def test_recipients
@issue.watchers.delete_all
@issue.reload
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 assert @issue.watcher_recipients.empty?
assert @issue.add_watcher(@user)
Jean-Philippe Lang
Fixed: Email notifications are sent to watchers even if 'No events' setting is chosen (#7763)....
r4884 @user.mail_notification = 'all'
@user.save!
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 @issue.reload
assert @issue.watcher_recipients.include?(@user.mail)
Jean-Philippe Lang
Fixed: Email notifications are sent to watchers even if 'No events' setting is chosen (#7763)....
r4884 @user.mail_notification = 'none'
@user.save!
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 @issue.reload
Jean-Philippe Lang
Fixed: Email notifications are sent to watchers even if 'No events' setting is chosen (#7763)....
r4884 assert !@issue.watcher_recipients.include?(@user.mail)
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 def test_unwatch
assert @issue.add_watcher(@user)
@issue.reload
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634 assert_equal 1, @issue.remove_watcher(@user)
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Adds a test for Watcher.prune with :project option....
r13342 def test_prune_with_user
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 Watcher.delete_all("user_id = 9")
user = User.find(9)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 # public
Watcher.create!(:watchable => Issue.find(1), :user => user)
Watcher.create!(:watchable => Issue.find(2), :user => user)
Watcher.create!(:watchable => Message.find(1), :user => user)
Watcher.create!(:watchable => Wiki.find(1), :user => user)
Watcher.create!(:watchable => WikiPage.find(2), :user => user)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 # private project (id: 2)
Member.create!(:project => Project.find(2), :principal => user, :role_ids => [1])
Watcher.create!(:watchable => Issue.find(4), :user => user)
Watcher.create!(:watchable => Message.find(7), :user => user)
Watcher.create!(:watchable => Wiki.find(2), :user => user)
Watcher.create!(:watchable => WikiPage.find(3), :user => user)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 assert_no_difference 'Watcher.count' do
Watcher.prune(:user => User.find(9))
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 Member.delete_all
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 assert_difference 'Watcher.count', -4 do
Watcher.prune(:user => User.find(9))
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/watcher_test.rb....
r6634
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 assert Issue.find(1).watched_by?(user)
assert !Issue.find(4).watched_by?(user)
end
Jean-Philippe Lang
Additional test for Watcher.prune....
r9284
Jean-Philippe Lang
Adds a test for Watcher.prune with :project option....
r13342 def test_prune_with_project
user = User.find(9)
Watcher.new(:watchable => Issue.find(4), :user => User.find(9)).save(:validate => false) # project 2
Watcher.new(:watchable => Issue.find(6), :user => User.find(9)).save(:validate => false) # project 5
assert Watcher.prune(:project => Project.find(5)) > 0
assert Issue.find(4).watched_by?(user)
assert !Issue.find(6).watched_by?(user)
end
Jean-Philippe Lang
Additional test for Watcher.prune....
r9284 def test_prune_all
user = User.find(9)
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 Watcher.new(:watchable => Issue.find(4), :user => User.find(9)).save(:validate => false)
Jean-Philippe Lang
Additional test for Watcher.prune....
r9284
assert Watcher.prune > 0
assert !Issue.find(4).watched_by?(user)
end
Jean-Philippe Lang
Added "Watch" functionality on issues. It allows users to receive mail notifications about issue changes....
r450 end