Ability to add non-member watchers on issue creation (#5159).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9254 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2012-03-24 12:57:28 +00:00
parent e2bb8721d9
commit fae5250e52
12 changed files with 98 additions and 14 deletions
+15
View File
@@ -1680,6 +1680,21 @@ class IssuesControllerTest < ActionController::TestCase
:value => 'Value for field 2'}
end
def test_post_create_with_failure_should_preserve_watchers
assert !User.find(8).member_of?(Project.find(1))
@request.session[:user_id] = 2
post :create, :project_id => 1,
:issue => {:tracker_id => 1,
:watcher_user_ids => ['3', '8']}
assert_response :success
assert_template 'new'
assert_tag 'input', :attributes => {:name => 'issue[watcher_user_ids][]', :value => '2', :checked => nil}
assert_tag 'input', :attributes => {:name => 'issue[watcher_user_ids][]', :value => '3', :checked => 'checked'}
assert_tag 'input', :attributes => {:name => 'issue[watcher_user_ids][]', :value => '8', :checked => 'checked'}
end
def test_post_create_should_ignore_non_safe_attributes
@request.session[:user_id] = 2
assert_nothing_raised do
@@ -68,6 +68,13 @@ class WatchersControllerTest < ActionController::TestCase
assert_select_rjs :replace_html, 'ajax-modal'
end
def test_new_for_new_record
@request.session[:user_id] = 2
xhr :get, :new, :project_id => 1
assert_response :success
assert_select_rjs :replace_html, 'ajax-modal'
end
def test_create
@request.session[:user_id] = 2
assert_difference('Watcher.count') do
@@ -91,6 +98,18 @@ class WatchersControllerTest < ActionController::TestCase
assert Issue.find(2).watched_by?(User.find(7))
end
def test_append
@request.session[:user_id] = 2
assert_no_difference 'Watcher.count' do
xhr :post, :append, :watcher => {:user_ids => ['4', '7']}
assert_response :success
assert_select_rjs :insert_html, 'watchers_inputs' do
assert_select 'input[name=?][value=4]', 'issue[watcher_user_ids][]'
assert_select 'input[name=?][value=7]', 'issue[watcher_user_ids][]'
end
end
end
def test_remove_watcher
@request.session[:user_id] = 2
assert_difference('Watcher.count', -1) do