50 lines
1.6 KiB
Ruby
Executable file
50 lines
1.6 KiB
Ruby
Executable file
require File.expand_path('../../test_helper', __FILE__)
|
|
|
|
class QueryTest < Additionals::TestCase
|
|
fixtures :projects, :users, :members, :member_roles, :roles,
|
|
:trackers, :projects_trackers,
|
|
:enabled_modules,
|
|
:roles
|
|
|
|
def setup
|
|
prepare_query_tests
|
|
end
|
|
|
|
def test_issue_query_principals_with_hide
|
|
User.current = @user_with_hide
|
|
query = IssueQuery.new(project: @project, name: '_')
|
|
|
|
# show all members + current user of hidden role
|
|
assert_equal 3, query.principals.count
|
|
end
|
|
|
|
def test_issue_query_principals_with_show_hide_permission
|
|
User.current = @user_with_show_hide
|
|
query = IssueQuery.new(project: @project, name: '_')
|
|
|
|
# show all members with 2 users of hidden role
|
|
assert_equal 4, query.principals.count
|
|
end
|
|
|
|
def prepare_query_tests
|
|
@role1 = Role.new(name: 'principal test hide1', users_visibility: 'members_of_visible_projects', hide: true)
|
|
@role1.add_permission!('view_issues')
|
|
@role1.save!
|
|
|
|
@role2 = Role.new(name: 'principal test hide2', users_visibility: 'members_of_visible_projects', hide: true)
|
|
@role2.add_permission!('view_issues', 'show_hidden_roles_in_memberbox')
|
|
@role2.save!
|
|
|
|
@project = projects(:projects_001)
|
|
|
|
@user_with_hide = User.generate!(firstname: 'hide1', lastname: 'role')
|
|
m = Member.new(user_id: @user_with_hide.id, project_id: @project.id)
|
|
m.member_roles.build(role_id: @role1.id)
|
|
m.save!
|
|
|
|
@user_with_show_hide = User.generate!(firstname: 'hide2', lastname: 'role')
|
|
m = Member.new(user_id: @user_with_show_hide.id, project_id: @project.id)
|
|
m.member_roles.build(role_id: @role2.id)
|
|
m.save!
|
|
end
|
|
end
|