diff options
author | Go MAEDA <maeda@farend.jp> | 2018-05-19 01:31:35 +0000 |
---|---|---|
committer | Go MAEDA <maeda@farend.jp> | 2018-05-19 01:31:35 +0000 |
commit | 929d8b27b2c47b8845d4560d3d3076bf1513a5a6 (patch) | |
tree | 78c0058b54cbdfb9e14626727e0836b7aa586bbc /test | |
parent | 09c1c8e1ee5b9be14036e7c862aacd6bf00d0100 (diff) | |
download | redmine-929d8b27b2c47b8845d4560d3d3076bf1513a5a6.tar.gz redmine-929d8b27b2c47b8845d4560d3d3076bf1513a5a6.zip |
Merged r17342 from trunk to 3.4-stable (#28765).
git-svn-id: http://svn.redmine.org/redmine/branches/3.4-stable@17343 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/issues_controller_test.rb | 23 | ||||
-rw-r--r-- | test/unit/issue_test.rb | 18 |
2 files changed, 41 insertions, 0 deletions
diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 4adf06b31..f88f6f36a 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -3863,6 +3863,29 @@ class IssuesControllerTest < Redmine::ControllerTest assert_select 'input[type=hidden][name=?][value=?]', 'issue[watcher_user_ids][]', '', 1 end + def test_new_as_copy_should_not_propose_locked_watchers + @request.session[:user_id] = 2 + + issue = Issue.find(1) + user = User.generate! + user2 = User.generate! + + Watcher.create!(:watchable => issue, :user => user) + Watcher.create!(:watchable => issue, :user => user2) + + user2.status = User::STATUS_LOCKED + user2.save! + get :new, :params => { + :project_id => 1, + :copy_from => 1 + } + + 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=checkbox][name=?][checked=checked][value=?]', 'issue[watcher_user_ids][]', user2.id.to_s, 0 + 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 @request.session[:user_id] = 2 get :new, :params => { diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 8297335ca..3b4c268b7 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -1375,6 +1375,24 @@ class IssueTest < ActiveSupport::TestCase assert_not_nil copied_closed.closed_on end + def test_copy_should_not_copy_locked_watchers + user = User.find(2) + user2 = User.find(3) + issue = Issue.find(8) + + Watcher.create!(:user => user, :watchable => issue) + Watcher.create!(:user => user2, :watchable => issue) + + user2.status = User::STATUS_LOCKED + user2.save! + + issue = Issue.new.copy_from(8) + + assert issue.save + assert issue.watched_by?(user) + assert !issue.watched_by?(user2) + end + def test_should_not_call_after_project_change_on_creation issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1, :subject => 'Test', :author_id => 1) |