21700: Install Bundler system-wide in Rails postinst
[arvados.git] / services / api / test / functional / user_sessions_controller_test.rb
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 require 'test_helper'
6
7 class UserSessionsControllerTest < ActionController::TestCase
8
9   setup do
10     @allowed_return_to = ",https://controller.api.client.invalid"
11   end
12
13   test "login route deleted" do
14     @request.headers['Authorization'] = 'Bearer '+Rails.configuration.SystemRootToken
15     get :login, params: {provider: 'controller', return_to: @allowed_return_to}
16     assert_response 404
17   end
18
19   test "controller cannot create session without SystemRootToken" do
20     get :create, params: {provider: 'controller', auth_info: {email: "foo@bar.com"}, return_to: @allowed_return_to}
21     assert_response 401
22   end
23
24   test "controller cannot create session with wrong SystemRootToken" do
25     @request.headers['Authorization'] = 'Bearer blah'
26     get :create, params: {provider: 'controller', auth_info: {email: "foo@bar.com"}, return_to: @allowed_return_to}
27     assert_response 401
28   end
29
30   test "controller can create session using SystemRootToken" do
31     @request.headers['Authorization'] = 'Bearer '+Rails.configuration.SystemRootToken
32     get :create, params: {provider: 'controller', auth_info: {email: "foo@bar.com"}, return_to: @allowed_return_to}
33     assert_response :redirect
34     api_client_auth = assigns(:api_client_auth)
35     assert_not_nil api_client_auth
36     assert_includes(@response.redirect_url, 'api_token='+api_client_auth.token)
37   end
38 end