|
|
@@ -1422,6 +1422,36 @@ class QueryTest < ActiveSupport::TestCase |
|
|
|
assert_equal [3, 7], result.sort_by(&:id).pluck(:id) |
|
|
|
end |
|
|
|
|
|
|
|
def test_filter_watched_issues_by_group_should_include_only_projects_with_permission |
|
|
|
user = User.find(2) |
|
|
|
group = Group.find(10) |
|
|
|
|
|
|
|
Issue.find(4).add_watcher(group) |
|
|
|
Issue.find(2).add_watcher(group) |
|
|
|
|
|
|
|
developer = Role.find(2) |
|
|
|
developer.remove_permission! :view_issue_watchers |
|
|
|
|
|
|
|
User.current = user |
|
|
|
|
|
|
|
query = |
|
|
|
IssueQuery.new( |
|
|
|
:name => '_', |
|
|
|
:filters => { |
|
|
|
'watcher_id' => { |
|
|
|
:operator => '=', |
|
|
|
:values => [group.id] |
|
|
|
} |
|
|
|
} |
|
|
|
) |
|
|
|
result = find_issues_with_query(query) |
|
|
|
|
|
|
|
assert_not_nil result |
|
|
|
|
|
|
|
# "Developer" role doesn't have the view_issue_watchers permission of issue's #4 project (OnlineStore). |
|
|
|
assert_equal [2], result.pluck(:id) |
|
|
|
end |
|
|
|
|
|
|
|
def test_filter_unwatched_issues |
|
|
|
User.current = User.find(1) |
|
|
|
query = |