X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b2addc8887d200219b44121c87a7a44bf4566e42..28b6afc1e8ccf652c7a8fd43e22a8ac788febd85:/services/api/test/functional/arvados/v1/api_client_authorizations_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/api_client_authorizations_controller_test.rb b/services/api/test/functional/arvados/v1/api_client_authorizations_controller_test.rb index 38938c4695..60b4133f9a 100644 --- a/services/api/test/functional/arvados/v1/api_client_authorizations_controller_test.rb +++ b/services/api/test/functional/arvados/v1/api_client_authorizations_controller_test.rb @@ -81,6 +81,15 @@ class Arvados::V1::ApiClientAuthorizationsControllerTest < ActionController::Tes end end + [:admin, :active].each do |token| + test "using '#{token}', get token details via 'current'" do + authorize_with token + get :current + assert_response 200 + assert_equal json_response['scopes'], ['all'] + end + end + [# anyone can look up the token they're currently using [:admin, :admin, 200, 200, 1], [:active, :active, 200, 200, 1], @@ -181,8 +190,46 @@ class Arvados::V1::ApiClientAuthorizationsControllerTest < ActionController::Tes api_client_authorizations(:active).api_token) end + test "get current token using SystemRootToken" do + Rails.configuration.SystemRootToken = "xyzzy-systemroottoken" + authorize_with_token Rails.configuration.SystemRootToken + get :current + assert_response :success + assert_equal(Rails.configuration.SystemRootToken, json_response['api_token']) + assert_not_empty(json_response['uuid']) + end + + [ + :active_noscope, + :active_all_collections, + :active_userlist, + :foo_collection_sharing_token, + ].each do |auth| + test "#{auth} can get current token without the appropriate scope" do + authorize_with auth + get :current + assert_response :success + end + end + test "get current token, no auth" do get :current assert_response 401 end + + # Tests regression #18801 + test "select param is respected in 'show' response" do + authorize_with :active + get :show, params: { + id: api_client_authorizations(:active).uuid, + select: ["uuid"], + } + assert_response :success + assert_raises ActiveModel::MissingAttributeError do + assigns(:object).api_token + end + assert_nil json_response["expires_at"] + assert_nil json_response["api_token"] + assert_equal api_client_authorizations(:active).uuid, json_response["uuid"] + end end