##// END OF EJS Templates
Speeds up rendering of the project list for users who belong to hundreds of projects....
Speeds up rendering of the project list for users who belong to hundreds of projects. git-svn-id: http://svn.redmine.org/redmine/trunk@16123 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r15349:8b107b605825
r15741:f8df935dcada
Show More
watchers_controller_test.rb
380 lines | 12.9 KiB | text/x-ruby | RubyLexer
/ test / functional / watchers_controller_test.rb
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 #
# 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/functional/watchers_controller_test.rb....
r6506 #
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 # 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/functional/watchers_controller_test.rb....
r6506 #
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 # 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
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711
Jean-Philippe Lang
Adds our own class for controller tests....
r15279 class WatchersControllerTest < Redmine::ControllerTest
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 :issues, :trackers, :projects_trackers, :issue_statuses, :enumerations, :watchers
Toshi MARUYAMA
remove trailing white-spaces from test/functional/watchers_controller_test.rb....
r6506
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 def setup
User.current = nil
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/watchers_controller_test.rb....
r6506
Jean-Philippe Lang
Don't use render :text => ""....
r15349 def test_watch_a_single_object_as_html
@request.session[:user_id] = 3
assert_difference('Watcher.count') do
post :watch, :params => {:object_type => 'issue', :object_id => '1'}
assert_response :success
assert_include 'Watcher added', response.body
end
assert Issue.find(1).watched_by?(User.find(3))
end
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 def test_watch_a_single_object
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 @request.session[:user_id] = 3
assert_difference('Watcher.count') do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :watch, :params => {:object_type => 'issue', :object_id => '1'}
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 assert_response :success
Jean-Philippe Lang
JQuery in, Prototype/Scriptaculous out (#11445)....
r9885 assert_include '$(".issue-1-watcher")', response.body
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 end
assert Issue.find(1).watched_by?(User.find(3))
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/watchers_controller_test.rb....
r6506
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 def test_watch_a_collection_with_a_single_object
@request.session[:user_id] = 3
assert_difference('Watcher.count') do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :watch, :params => {:object_type => 'issue', :object_id => ['1']}
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 assert_response :success
assert_include '$(".issue-1-watcher")', response.body
end
assert Issue.find(1).watched_by?(User.find(3))
end
def test_watch_a_collection_with_multiple_objects
@request.session[:user_id] = 3
assert_difference('Watcher.count', 2) do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :watch, :params => {:object_type => 'issue', :object_id => ['1', '3']}
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 assert_response :success
assert_include '$(".issue-bulk-watcher")', response.body
end
assert Issue.find(1).watched_by?(User.find(3))
assert Issue.find(3).watched_by?(User.find(3))
end
Jean-Philippe Lang
Enable the watching of news (#2549)....
r12591 def test_watch_a_news_module_should_add_watcher
@request.session[:user_id] = 7
assert_not_nil m = Project.find(1).enabled_module('news')
assert_difference 'Watcher.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :watch, :params => {:object_type => 'enabled_module', :object_id => m.id.to_s}
Jean-Philippe Lang
Enable the watching of news (#2549)....
r12591 assert_response :success
end
assert m.reload.watched_by?(User.find(7))
end
def test_watch_a_private_news_module_without_permission_should_fail
@request.session[:user_id] = 7
assert_not_nil m = Project.find(2).enabled_module('news')
assert_no_difference 'Watcher.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :watch, :params => {:object_type => 'enabled_module', :object_id => m.id.to_s}
Jean-Philippe Lang
Enable the watching of news (#2549)....
r12591 assert_response 403
end
end
Jean-Philippe Lang
Make sure user can not watch what he is not allowed to view....
r3056 def test_watch_should_be_denied_without_permission
Role.find(2).remove_permission! :view_issues
@request.session[:user_id] = 3
assert_no_difference('Watcher.count') do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :watch, :params => {:object_type => 'issue', :object_id => '1'}
Jean-Philippe Lang
Make sure user can not watch what he is not allowed to view....
r3056 assert_response 403
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/watchers_controller_test.rb....
r6506
Jean-Philippe Lang
Additional tests for WatchersController....
r9231 def test_watch_invalid_class_should_respond_with_404
@request.session[:user_id] = 3
assert_no_difference('Watcher.count') do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :watch, :params => {:object_type => 'foo', :object_id => '1'}
Jean-Philippe Lang
Additional tests for WatchersController....
r9231 assert_response 404
end
end
def test_watch_invalid_object_should_respond_with_404
@request.session[:user_id] = 3
assert_no_difference('Watcher.count') do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :watch, :params => {:object_type => 'issue', :object_id => '999'}
Jean-Philippe Lang
Additional tests for WatchersController....
r9231 assert_response 404
end
end
Jean-Philippe Lang
Don't use render :text => ""....
r15349 def test_unwatch_as_html
@request.session[:user_id] = 3
assert_difference('Watcher.count', -1) do
delete :unwatch, :params => {:object_type => 'issue', :object_id => '2'}
assert_response :success
assert_include 'Watcher removed', response.body
end
assert !Issue.find(1).watched_by?(User.find(3))
end
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 def test_unwatch
@request.session[:user_id] = 3
assert_difference('Watcher.count', -1) do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :delete, :unwatch, :params => {:object_type => 'issue', :object_id => '2'}
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 assert_response :success
Jean-Philippe Lang
JQuery in, Prototype/Scriptaculous out (#11445)....
r9885 assert_include '$(".issue-2-watcher")', response.body
Eric Davis
Add a second action menu to IssuesController#show. (#4331)...
r3005 end
assert !Issue.find(1).watched_by?(User.find(3))
end
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 def test_unwatch_a_collection_with_multiple_objects
@request.session[:user_id] = 3
Watcher.create!(:user_id => 3, :watchable => Issue.find(1))
Watcher.create!(:user_id => 3, :watchable => Issue.find(3))
assert_difference('Watcher.count', -2) do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :delete, :unwatch, :params => {:object_type => 'issue', :object_id => ['1', '3']}
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 assert_response :success
assert_include '$(".issue-bulk-watcher")', response.body
end
assert !Issue.find(1).watched_by?(User.find(3))
assert !Issue.find(3).watched_by?(User.find(3))
end
Jean-Philippe Lang
Ability to add non-member users as watchers (#5159)....
r8472 def test_new
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :new, :params => {:object_type => 'issue', :object_id => '2'}
Jean-Philippe Lang
Ability to add non-member users as watchers (#5159)....
r8472 assert_response :success
Jean-Philippe Lang
Removes RJS from WatchersController....
r9864 assert_match /ajax-modal/, response.body
Jean-Philippe Lang
Ability to add non-member users as watchers (#5159)....
r8472 end
Jean-Philippe Lang
Allow addition of watchers via bulk edit context menu (#5754)....
r14929 def test_new_with_multiple_objects
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :new, :params => {:object_type => 'issue', :object_id => ['1', '2']}
Jean-Philippe Lang
Allow addition of watchers via bulk edit context menu (#5754)....
r14929 assert_response :success
assert_match /ajax-modal/, response.body
end
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 def test_new_for_new_record_with_project_id
Jean-Philippe Lang
Ability to add non-member watchers on issue creation (#5159)....
r9134 @request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :new, :params => {:project_id => 1}
Jean-Philippe Lang
Ability to add non-member watchers on issue creation (#5159)....
r9134 assert_response :success
Jean-Philippe Lang
Removes RJS from WatchersController....
r9864 assert_match /ajax-modal/, response.body
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 end
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 def test_new_for_new_record_with_project_identifier
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 @request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :new, :params => {:project_id => 'ecookbook'}
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 assert_response :success
Jean-Philippe Lang
Removes RJS from WatchersController....
r9864 assert_match /ajax-modal/, response.body
Jean-Philippe Lang
Ability to add non-member watchers on issue creation (#5159)....
r9134 end
Jean-Philippe Lang
Don't use render :text => ""....
r15349 def test_create_as_html
@request.session[:user_id] = 2
assert_difference('Watcher.count') do
post :create, :params => {
:object_type => 'issue', :object_id => '2',
:watcher => {:user_id => '4'}
}
assert_response :success
assert_include 'Watcher added', response.body
end
assert Issue.find(2).watched_by?(User.find(4))
end
Jean-Philippe Lang
Ability to add non-member users as watchers (#5159)....
r8472 def test_create
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 @request.session[:user_id] = 2
assert_difference('Watcher.count') do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :create, :params => {
:object_type => 'issue', :object_id => '2',
:watcher => {:user_id => '4'}
}
Jean-Philippe Lang
Ability to add non-member users as watchers (#5159)....
r8472 assert_response :success
Jean-Philippe Lang
Removes RJS from WatchersController....
r9864 assert_match /watchers/, response.body
assert_match /ajax-modal/, response.body
Jean-Philippe Lang
Ability to add non-member users as watchers (#5159)....
r8472 end
assert Issue.find(2).watched_by?(User.find(4))
end
Jean-Philippe Lang
Allow addition of watchers via bulk edit context menu (#5754)....
r14929 def test_create_with_mutiple_users
Jean-Philippe Lang
Ability to add non-member users as watchers (#5159)....
r8472 @request.session[:user_id] = 2
assert_difference('Watcher.count', 2) do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :create, :params => {
:object_type => 'issue', :object_id => '2',
:watcher => {:user_ids => ['4', '7']}
}
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 assert_response :success
Jean-Philippe Lang
Removes RJS from WatchersController....
r9864 assert_match /watchers/, response.body
assert_match /ajax-modal/, response.body
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 end
assert Issue.find(2).watched_by?(User.find(4))
Jean-Philippe Lang
Ability to add non-member users as watchers (#5159)....
r8472 assert Issue.find(2).watched_by?(User.find(7))
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/watchers_controller_test.rb....
r6506
Jean-Philippe Lang
Allow addition of watchers via bulk edit context menu (#5754)....
r14929 def test_create_with_mutiple_objects
@request.session[:user_id] = 2
assert_difference('Watcher.count', 4) do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :create, :params => {
:object_type => 'issue', :object_id => ['1', '2'],
:watcher => {:user_ids => ['4', '7']}
}
Jean-Philippe Lang
Allow addition of watchers via bulk edit context menu (#5754)....
r14929 assert_response :success
assert_match /watchers/, response.body
assert_match /ajax-modal/, response.body
end
assert Issue.find(1).watched_by?(User.find(4))
assert Issue.find(2).watched_by?(User.find(4))
assert Issue.find(1).watched_by?(User.find(7))
assert Issue.find(2).watched_by?(User.find(7))
end
Etienne Massip
Fixed Internal Error in watchers XHR search (#10600)....
r9189 def test_autocomplete_on_watchable_creation
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 @request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :autocomplete_for_user, :params => {:q => 'mi', :project_id => 'ecookbook'}
Etienne Massip
Fixed Internal Error in watchers XHR search (#10600)....
r9189 assert_response :success
assert_select 'input', :count => 4
Jean-Philippe Lang
Quote values in DOM selectors for Nokogiri compatibility....
r13237 assert_select 'input[name=?][value="1"]', 'watcher[user_ids][]'
assert_select 'input[name=?][value="2"]', 'watcher[user_ids][]'
assert_select 'input[name=?][value="8"]', 'watcher[user_ids][]'
assert_select 'input[name=?][value="9"]', 'watcher[user_ids][]'
Etienne Massip
Fixed Internal Error in watchers XHR search (#10600)....
r9189 end
Toshi MARUYAMA
add tests for non member watchers (#15622)...
r12124 def test_search_non_member_on_create
@request.session[:user_id] = 2
project = Project.find_by_name("ecookbook")
user = User.generate!(:firstname => 'issue15622')
membership = user.membership(project)
assert_nil membership
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :autocomplete_for_user, :params => {:q => 'issue15622', :project_id => 'ecookbook'}
Toshi MARUYAMA
add tests for non member watchers (#15622)...
r12124 assert_response :success
assert_select 'input', :count => 1
end
Etienne Massip
Fixed Internal Error in watchers XHR search (#10600)....
r9189 def test_autocomplete_on_watchable_update
Jean-Philippe Lang
Bulk watch/unwatch issues from the context menu (#7159)....
r11109 @request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :autocomplete_for_user, :params => {
:object_type => 'issue', :object_id => '2',
:project_id => 'ecookbook', :q => 'mi'
}
Etienne Massip
Fixed Internal Error in watchers XHR search (#10600)....
r9189 assert_response :success
assert_select 'input', :count => 3
Jean-Philippe Lang
Quote values in DOM selectors for Nokogiri compatibility....
r13237 assert_select 'input[name=?][value="2"]', 'watcher[user_ids][]'
assert_select 'input[name=?][value="8"]', 'watcher[user_ids][]'
assert_select 'input[name=?][value="9"]', 'watcher[user_ids][]'
Etienne Massip
Fixed Internal Error in watchers XHR search (#10600)....
r9189 end
Toshi MARUYAMA
add tests for non member watchers (#15622)...
r12124 def test_search_and_add_non_member_on_update
@request.session[:user_id] = 2
project = Project.find_by_name("ecookbook")
user = User.generate!(:firstname => 'issue15622')
membership = user.membership(project)
assert_nil membership
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284
xhr :get, :autocomplete_for_user, :params => {
:object_type => 'issue', :object_id => '2',
:project_id => 'ecookbook', :q => 'issue15622'
}
Toshi MARUYAMA
add tests for non member watchers (#15622)...
r12124 assert_response :success
assert_select 'input', :count => 1
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284
Toshi MARUYAMA
add tests for non member watchers (#15622)...
r12124 assert_difference('Watcher.count', 1) do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :create, :params => {
:object_type => 'issue', :object_id => '2',
:watcher => {:user_ids => ["#{user.id}"]}
}
Toshi MARUYAMA
add tests for non member watchers (#15622)...
r12124 assert_response :success
assert_match /watchers/, response.body
assert_match /ajax-modal/, response.body
end
assert Issue.find(2).watched_by?(user)
end
Jean-Philippe Lang
Adds a role setting for controlling visibility of users: all or members of visible projects (#11724)....
r13202 def test_autocomplete_for_user_should_return_visible_users
Role.update_all :users_visibility => 'members_of_visible_projects'
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 hidden = User.generate!(:lastname => 'autocomplete_hidden')
visible = User.generate!(:lastname => 'autocomplete_visible')
Jean-Philippe Lang
Adds a role setting for controlling visibility of users: all or members of visible projects (#11724)....
r13202 User.add_to_project(visible, Project.find(1))
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :get, :autocomplete_for_user, :params => {:q => 'autocomp', :project_id => 'ecookbook'}
Jean-Philippe Lang
Adds a role setting for controlling visibility of users: all or members of visible projects (#11724)....
r13202 assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_include visible.name, response.body
assert_not_include hidden.name, response.body
Jean-Philippe Lang
Adds a role setting for controlling visibility of users: all or members of visible projects (#11724)....
r13202 end
Jean-Philippe Lang
Ability to add non-member watchers on issue creation (#5159)....
r9134 def test_append
@request.session[:user_id] = 2
assert_no_difference 'Watcher.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :append, :params => {
:watcher => {:user_ids => ['4', '7']}, :project_id => 'ecookbook'
}
Jean-Philippe Lang
Ability to add non-member watchers on issue creation (#5159)....
r9134 assert_response :success
Jean-Philippe Lang
Removes RJS from WatchersController....
r9864 assert_include 'watchers_inputs', response.body
assert_include 'issue[watcher_user_ids][]', response.body
Jean-Philippe Lang
Ability to add non-member watchers on issue creation (#5159)....
r9134 end
end
Jean-Philippe Lang
Fixed: Error generated on 'search for watchers to add' after clicking add without selected users (#14298)....
r12710 def test_append_without_user_should_render_nothing
@request.session[:user_id] = 2
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :post, :append, :params => {:project_id => 'ecookbook'}
Jean-Philippe Lang
Fixed: Error generated on 'search for watchers to add' after clicking add without selected users (#14298)....
r12710 assert_response :success
assert response.body.blank?
end
Jean-Philippe Lang
Don't use render :text => ""....
r15349 def test_destroy_as_html
@request.session[:user_id] = 2
assert_difference('Watcher.count', -1) do
delete :destroy, :params => {
:object_type => 'issue', :object_id => '2', :user_id => '3'
}
assert_response :success
assert_include 'Watcher removed', response.body
end
assert !Issue.find(2).watched_by?(User.find(3))
end
Jean-Philippe Lang
Fixed that user with permission can't remove a locked watcher (#21382)....
r14564 def test_destroy
Jean-Philippe Lang
Add a permission to remove issue watchers (#2450)....
r2863 @request.session[:user_id] = 2
assert_difference('Watcher.count', -1) do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :delete, :destroy, :params => {
:object_type => 'issue', :object_id => '2', :user_id => '3'
}
Jean-Philippe Lang
Add a permission to remove issue watchers (#2450)....
r2863 assert_response :success
Jean-Philippe Lang
Removes RJS from WatchersController....
r9864 assert_match /watchers/, response.body
Jean-Philippe Lang
Add a permission to remove issue watchers (#2450)....
r2863 end
assert !Issue.find(2).watched_by?(User.find(3))
end
Jean-Philippe Lang
Fixed that user with permission can't remove a locked watcher (#21382)....
r14564
def test_destroy_locked_user
user = User.find(3)
user.lock!
assert user.reload.locked?
@request.session[:user_id] = 2
assert_difference('Watcher.count', -1) do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 xhr :delete, :destroy, :params => {
:object_type => 'issue', :object_id => '2', :user_id => '3'
}
Jean-Philippe Lang
Fixed that user with permission can't remove a locked watcher (#21382)....
r14564 assert_response :success
assert_match /watchers/, response.body
end
assert !Issue.find(2).watched_by?(User.find(3))
end
def test_destroy_invalid_user_should_respond_with_404
@request.session[:user_id] = 2
assert_no_difference('Watcher.count') do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 delete :destroy, :params => {
:object_type => 'issue', :object_id => '2', :user_id => '999'
}
Jean-Philippe Lang
Fixed that user with permission can't remove a locked watcher (#21382)....
r14564 assert_response 404
end
end
Jean-Philippe Lang
Adds permissions for viewing the watcher list and adding new watchers on the issue detail view (#398)....
r1711 end