3 class UsersControllerTest < ActionController::TestCase
4 test "valid token works in controller test" do
5 get :index, {}, session_for(:active)
6 assert_response :success
9 test "ignore previously valid token (for deleted user), don't crash" do
10 get :activity, {}, session_for(:valid_token_deleted_user)
11 assert_response :redirect
12 assert_match /^#{Rails.configuration.arvados_login_base}/, @response.redirect_url
13 assert_nil assigns(:my_jobs)
14 assert_nil assigns(:my_ssh_keys)
17 test "expired token redirects to api server login" do
19 id: api_fixture('users')['active']['uuid']
20 }, session_for(:expired_trustedclient)
21 assert_response :redirect
22 assert_match /^#{Rails.configuration.arvados_login_base}/, @response.redirect_url
23 assert_nil assigns(:my_jobs)
24 assert_nil assigns(:my_ssh_keys)
27 test "show welcome page if no token provided" do
29 assert_response :redirect
30 assert_match /\/users\/welcome/, @response.redirect_url
33 test "show repositories with read, write, or manage permission" do
34 get :manage_account, {}, session_for(:active)
35 assert_response :success
36 repos = assigns(:my_repositories)
38 assert_not_empty repos, "my_repositories should not be empty"
39 editables = repos.collect { |r| !!assigns(:repo_writable)[r.uuid] }
40 assert_includes editables, true, "should have a writable repository"
41 assert_includes editables, false, "should have a readonly repository"
44 test "request shell access" do
45 user = api_fixture('users')['spectator']
47 ActionMailer::Base.deliveries = []
49 post :request_shell_access, {
52 }, session_for(:spectator)
53 assert_response :success
55 full_name = "#{user['first_name']} #{user['last_name']}"
56 expected = "Shell account request from #{full_name} (#{user['email']}, #{user['uuid']})"
58 ActionMailer::Base.deliveries.each do |email|
59 if email.subject.include?(expected)
64 assert_equal 1, found_email, "Expected 1 email after requesting shell access"