diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2018-01-07 22:18:17 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2018-01-07 22:18:17 +0000 |
commit | 27cd7f478b64d72e14c7ab07e05f7fde5b828d06 (patch) | |
tree | 43680805a55b58505edf6883bda45d46b1bdc2a7 | |
parent | c7948ed40d9e74b3ee1d9f674913aaad04ab5f85 (diff) | |
download | redmine-27cd7f478b64d72e14c7ab07e05f7fde5b828d06.tar.gz redmine-27cd7f478b64d72e14c7ab07e05f7fde5b828d06.zip |
Cannot clear all watchers when copying an issue (#26880).
git-svn-id: http://svn.redmine.org/redmine/trunk@17153 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/views/issues/_watchers_form.html.erb | 1 | ||||
-rw-r--r-- | test/functional/issues_controller_test.rb | 41 |
2 files changed, 42 insertions, 0 deletions
diff --git a/app/views/issues/_watchers_form.html.erb b/app/views/issues/_watchers_form.html.erb index 6d349f4a3..b55e60284 100644 --- a/app/views/issues/_watchers_form.html.erb +++ b/app/views/issues/_watchers_form.html.erb @@ -1,4 +1,5 @@ <% if @issue.safe_attribute? 'watcher_user_ids' -%> + <%= hidden_field_tag 'issue[watcher_user_ids][]', '' %> <p id="watchers_form"><label><%= l(:label_issue_watchers) %></label> <span id="watchers_inputs"> <%= watchers_checkboxes(@issue, users_for_new_issue_watchers(@issue)) %> diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 34d353263..3ab922a22 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -3871,6 +3871,7 @@ class IssuesControllerTest < Redmine::ControllerTest assert_select 'input[type=checkbox][name=?][checked=checked]', 'issue[watcher_user_ids][]', 1 assert_select 'input[type=checkbox][name=?][checked=checked][value=?]', 'issue[watcher_user_ids][]', user.id.to_s + assert_select 'input[type=hidden][name=?][value=?]', 'issue[watcher_user_ids][]', '', 1 end def test_new_as_copy_with_invalid_issue_should_respond_with_404 @@ -4207,6 +4208,46 @@ class IssuesControllerTest < Redmine::ControllerTest assert_equal 1, issue.project_id end + def test_create_as_copy_with_watcher_user_ids_should_copy_watchers + @request.session[:user_id] = 2 + copied = Issue.generate! + copied.add_watcher User.find(2) + copied.add_watcher User.find(3) + + assert_difference 'Issue.count' do + post :create, :params => { + :project_id => 1, + :copy_from => copied.id, + :issue => { + :subject => 'Copy cleared watchers', + :watcher_user_ids => ['', '3'] + } + } + end + issue = Issue.order('id DESC').first + assert_equal [3], issue.watcher_user_ids + end + + def test_create_as_copy_without_watcher_user_ids_should_not_copy_watchers + @request.session[:user_id] = 2 + copied = Issue.generate! + copied.add_watcher User.find(2) + copied.add_watcher User.find(3) + + assert_difference 'Issue.count' do + post :create, :params => { + :project_id => 1, + :copy_from => copied.id, + :issue => { + :subject => 'Copy cleared watchers', + :watcher_user_ids => [''] + } + } + end + issue = Issue.order('id DESC').first + assert_equal [], issue.watcher_user_ids + end + def test_get_edit @request.session[:user_id] = 2 get :edit, :params => { |