X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b2addc8887d200219b44121c87a7a44bf4566e42..0e2a467a923bd490f3e1dc4d8c00a9e2f29e59d4:/services/api/test/integration/users_test.rb diff --git a/services/api/test/integration/users_test.rb b/services/api/test/integration/users_test.rb index 5886fb2d08..11ebb3f4fd 100644 --- a/services/api/test/integration/users_test.rb +++ b/services/api/test/integration/users_test.rb @@ -268,6 +268,7 @@ class UsersTest < ActionDispatch::IntegrationTest headers: auth(:active)) assert_response(:success) assert_equal(users(:project_viewer).uuid, json_response['owner_uuid']) + assert_equal("#{users(:project_viewer).username}/foo", json_response['name']) get('/arvados/v1/groups/' + groups(:aproject).uuid, params: {}, @@ -275,4 +276,67 @@ class UsersTest < ActionDispatch::IntegrationTest assert_response(:success) assert_equal(project_uuid, json_response['owner_uuid']) end + + test 'pre-activate user' do + post '/arvados/v1/users', + params: { + "user" => { + "email" => 'foo@example.com', + "is_active" => true, + "username" => "barney" + } + }, + headers: {'HTTP_AUTHORIZATION' => "OAuth2 #{api_token(:admin)}"} + assert_response :success + rp = json_response + assert_not_nil rp["uuid"] + assert_not_nil rp["is_active"] + assert_nil rp["is_admin"] + + get "/arvados/v1/users/#{rp['uuid']}", + params: {format: 'json'}, + headers: auth(:admin) + assert_response :success + assert_equal rp["uuid"], json_response['uuid'] + assert_nil json_response['is_admin'] + assert_equal true, json_response['is_active'] + assert_equal 'foo@example.com', json_response['email'] + assert_equal 'barney', json_response['username'] + end + + test 'merge with repository name conflict' do + post('/arvados/v1/groups', + params: { + group: { + group_class: 'project', + name: "active user's stuff", + }, + }, + headers: auth(:project_viewer)) + assert_response(:success) + project_uuid = json_response['uuid'] + + post('/arvados/v1/repositories/', + params: { :repository => { :name => "#{users(:project_viewer).username}/foo", :owner_uuid => users(:project_viewer).uuid } }, + headers: auth(:project_viewer)) + assert_response(:success) + + post('/arvados/v1/users/merge', + params: { + new_user_token: api_client_authorizations(:project_viewer_trustedclient).api_token, + new_owner_uuid: project_uuid, + redirect_to_new_user: true, + }, + headers: auth(:active_trustedclient)) + assert_response(:success) + + get('/arvados/v1/repositories/' + repositories(:foo).uuid, + params: {}, + headers: auth(:active)) + assert_response(:success) + assert_equal(users(:project_viewer).uuid, json_response['owner_uuid']) + assert_equal("#{users(:project_viewer).username}/migratedfoo", json_response['name']) + + end + end