X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/060d38d627bd1e51dd2b3c6e7de9af6aa7d7b6f3..c306aaa029d8e65a4399f27fec982e4e2f72ba8d:/services/api/test/functional/user_sessions_controller_test.rb diff --git a/services/api/test/functional/user_sessions_controller_test.rb b/services/api/test/functional/user_sessions_controller_test.rb index f7021cf9de..cf4c6e8b4d 100644 --- a/services/api/test/functional/user_sessions_controller_test.rb +++ b/services/api/test/functional/user_sessions_controller_test.rb @@ -6,15 +6,33 @@ require 'test_helper' class UserSessionsControllerTest < ActionController::TestCase - test "new user from new api client" do - authorize_with :inactive - api_client_page = 'http://client.example.com/home' - get :login, return_to: api_client_page - assert_response :redirect - assert_equal(0, @response.redirect_url.index(api_client_page + '?'), - 'Redirect url ' + @response.redirect_url + - ' should start with ' + api_client_page + '?') - assert_not_nil assigns(:api_client) + setup do + @allowed_return_to = ",https://controller.api.client.invalid" + end + + test "login route deleted" do + @request.headers['Authorization'] = 'Bearer '+Rails.configuration.SystemRootToken + get :login, params: {provider: 'controller', return_to: @allowed_return_to} + assert_response 404 + end + + test "controller cannot create session without SystemRootToken" do + get :create, params: {provider: 'controller', auth_info: {email: "foo@bar.com"}, return_to: @allowed_return_to} + assert_response 401 end + test "controller cannot create session with wrong SystemRootToken" do + @request.headers['Authorization'] = 'Bearer blah' + get :create, params: {provider: 'controller', auth_info: {email: "foo@bar.com"}, return_to: @allowed_return_to} + assert_response 401 + end + + test "controller can create session using SystemRootToken" do + @request.headers['Authorization'] = 'Bearer '+Rails.configuration.SystemRootToken + get :create, params: {provider: 'controller', auth_info: {email: "foo@bar.com"}, return_to: @allowed_return_to} + assert_response :redirect + api_client_auth = assigns(:api_client_auth) + assert_not_nil api_client_auth + assert_includes(@response.redirect_url, 'api_token='+api_client_auth.token) + end end