X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0d8d1ff55e2ba154b396e1879928a126745c1089..19ae770973482257117fe8ded5619c3018c4b60f:/apps/workbench/test/controllers/projects_controller_test.rb diff --git a/apps/workbench/test/controllers/projects_controller_test.rb b/apps/workbench/test/controllers/projects_controller_test.rb index 643aaae6c9..58914a84ac 100644 --- a/apps/workbench/test/controllers/projects_controller_test.rb +++ b/apps/workbench/test/controllers/projects_controller_test.rb @@ -419,6 +419,35 @@ class ProjectsControllerTest < ActionController::TestCase assert_select "#projects-menu + ul li.divider ~ li a[href=/projects/#{project_uuid}]" end + [ + ["active", 5, ["aproject", "asubproject"], "anonymously_accessible_project"], + ["user1_with_load", 2, ["project_with_10_collections"], "project_with_2_pipelines_and_60_jobs"], + ["admin", 5, ["anonymously_accessible_project", "subproject_in_anonymous_accessible_project"], "aproject"], + ].each do |user, page_size, tree_segment, unexpected| + test "build my projects tree for #{user} user and verify #{unexpected} is omitted" do + use_token user + ctrl = ProjectsController.new + + current_user = User.find(api_fixture('users')[user]['uuid']) + + my_tree = ctrl.send :my_wanted_projects_tree, current_user, page_size + + tree_segment_at_depth_1 = api_fixture('groups')[tree_segment[0]] + tree_segment_at_depth_2 = api_fixture('groups')[tree_segment[1]] if tree_segment[1] + + tree_nodes = {} + my_tree[0].each do |x| + tree_nodes[x[:object]['uuid']] = x[:depth] + end + + assert_equal(1, tree_nodes[tree_segment_at_depth_1['uuid']]) + assert_equal(2, tree_nodes[tree_segment_at_depth_2['uuid']]) if tree_segment[1] + + unexpected_project = api_fixture('groups')[unexpected] + assert_nil(tree_nodes[unexpected_project['uuid']]) + end + end + [ ["active", 1], ["project_viewer", 1],