X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/49db3b740b861688eff2a872c8f69f65ee893ed2..72e22b49ec2721d3a1369da768d3d74fa9c079c3:/services/api/test/functional/arvados/v1/groups_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/groups_controller_test.rb b/services/api/test/functional/arvados/v1/groups_controller_test.rb index 646089d5dd..3beec35958 100644 --- a/services/api/test/functional/arvados/v1/groups_controller_test.rb +++ b/services/api/test/functional/arvados/v1/groups_controller_test.rb @@ -462,4 +462,66 @@ class Arvados::V1::GroupsControllerTest < ActionController::TestCase } check_project_contents_response %w'arvados#pipelineInstance arvados#job' end + + test 'get contents with low max_index_database_read' do + # Some result will certainly have at least 12 bytes in a + # restricted column + Rails.configuration.max_index_database_read = 12 + authorize_with :active + get :contents, { + id: groups(:aproject).uuid, + format: :json, + } + assert_response :success + assert_not_empty(json_response['items']) + assert_operator(json_response['items'].count, + :<, json_response['items_available']) + end + + test 'get contents, recursive=true' do + authorize_with :active + params = { + id: groups(:aproject).uuid, + recursive: true, + format: :json, + } + get :contents, params + owners = json_response['items'].map do |item| + item['owner_uuid'] + end + assert_includes(owners, groups(:aproject).uuid) + assert_includes(owners, groups(:asubproject).uuid) + end + + [false, nil].each do |recursive| + test "get contents, recursive=#{recursive.inspect}" do + authorize_with :active + params = { + id: groups(:aproject).uuid, + format: :json, + } + params[:recursive] = false if recursive == false + get :contents, params + owners = json_response['items'].map do |item| + item['owner_uuid'] + end + assert_includes(owners, groups(:aproject).uuid) + refute_includes(owners, groups(:asubproject).uuid) + end + end + + test 'get home project contents, recursive=true' do + authorize_with :active + get :contents, { + id: users(:active).uuid, + recursive: true, + format: :json, + } + owners = json_response['items'].map do |item| + item['owner_uuid'] + end + assert_includes(owners, users(:active).uuid) + assert_includes(owners, groups(:aproject).uuid) + assert_includes(owners, groups(:asubproject).uuid) + end end