X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/89fccf123374c67e738381ea840e3535b2d1074f..0eb72b526bf8bbb011551ecf019f604e17a534f1:/apps/workbench/test/integration/user_settings_menu_test.rb diff --git a/apps/workbench/test/integration/user_settings_menu_test.rb b/apps/workbench/test/integration/user_settings_menu_test.rb index c2a2f8a89d..6a0e46e26a 100644 --- a/apps/workbench/test/integration/user_settings_menu_test.rb +++ b/apps/workbench/test/integration/user_settings_menu_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'integration_helper' class UserSettingsMenuTest < ActionDispatch::IntegrationTest @@ -5,8 +9,8 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest need_javascript end - # test manage_account page - def verify_manage_account user + # test user settings menu + def verify_user_settings_menu user if user['is_active'] within('.navbar-fixed-top') do page.find("#notifications-menu").click @@ -66,9 +70,9 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest ['active', api_fixture('users')['active']], ['admin', api_fixture('users')['admin']], ].each do |token, user| - test "test manage account for user #{token}" do + test "test user settings menu for user #{token}" do visit page_with_token(token) - verify_manage_account user + verify_user_settings_menu user end end @@ -84,7 +88,7 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest ['job_reader', :ssh, :pipeline], ['active'], ].each do |user, *expect| - test "manage account for #{user} with notifications #{expect.inspect}" do + test "user settings menu for #{user} with notifications #{expect.inspect}" do Rails.configuration.anonymous_user_token = false visit page_with_token(user) click_link 'notifications-menu' @@ -110,32 +114,27 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest end test "verify repositories for active user" do - user = api_fixture('users')['active'] - visit page_with_token('active',"/users/#{api_fixture('users')['active']['uuid']}/repositories") - repos = [[api_fixture('repositories')['foo'], true, true], - [api_fixture('repositories')['repository3'], false, false], - [api_fixture('repositories')['repository4'], true, false]] + visit page_with_token('active',"/repositories") + + repos = [[api_fixture('repositories')['foo'], true], + [api_fixture('repositories')['repository3'], false], + [api_fixture('repositories')['repository4'], false], + [api_fixture('repositories')['arvados'], false]] - repos.each do |(repo, writable, sharable)| + repos.each do |(repo, owned)| within('tr', text: repo['name']+'.git') do - if sharable - assert_selector 'a', text:'Share' - assert_text 'writable' + assert_text repo['name'] + assert_selector 'a', text:'Show' + if owned + assert_not_nil first('.glyphicon-trash') else - assert_text repo['name'] - assert_no_selector 'a', text:'Share' - if writable - assert_text 'writable' - else - assert_text 'read-only' - end + assert_nil first('.glyphicon-trash') end end end end test "request shell access" do - user = api_fixture('users')['spectator'] ActionMailer::Base.deliveries = [] visit page_with_token('spectator', "/users/#{api_fixture('users')['spectator']['uuid']}/virtual_machines") assert_text 'You do not have access to any virtual machines' @@ -149,6 +148,7 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest assert_text 'A request for shell access was sent' # verify that the email was sent + user = api_fixture('users')['spectator'] full_name = "#{user['first_name']} #{user['last_name']}" expected = "Shell account request from #{full_name} (#{user['email']}, #{user['uuid']})" found_email = 0 @@ -193,12 +193,12 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest [ ['virtual_machines', nil, 'Host name', 'testvm2.shell'], - ['repositories', 'Add new repository', 'It may take a minute or two before you can clone your new repository.', 'active/foo'], + ['/repositories', 'Add new repository', 'It may take a minute or two before you can clone your new repository.', 'active/foo'], ['/current_token', nil, 'HISTIGNORE=$HISTIGNORE', 'ARVADOS_API_TOKEN=3kg6k6lzmp9kj5'], ['ssh_keys', 'Add new SSH key', 'Click here to learn about SSH keys in Arvados.', 'active'], ].each do |page_name, button_name, look_for, content| - test "test user-settings menu for page #{page_name}" do - if page_name == '/current_token' + test "test user settings menu for page #{page_name}" do + if page_name == '/current_token' || page_name == '/repositories' visit page_with_token('active', page_name) else visit page_with_token('active', "/users/#{api_fixture('users')['active']['uuid']}/#{page_name}") @@ -216,18 +216,21 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest [ ['virtual_machines', 'You do not have access to any virtual machines.'], - ['repositories', 'You do not seem to have access to any repositories.'], + ['/repositories', api_fixture('repositories')['arvados']['name']], ['/current_token', 'HISTIGNORE=$HISTIGNORE'], ['ssh_keys', 'You have not yet set up an SSH public key for use with Arvados.'], ].each do |page_name, look_for| - test "test user-settings menu for page #{page_name} when page is empty" do - if page_name == '/current_token' + test "test user settings menu for page #{page_name} when page is empty" do + if page_name == '/current_token' || page_name == '/repositories' visit page_with_token('user1_with_load', page_name) else visit page_with_token('admin', "/users/#{api_fixture('users')['user1_with_load']['uuid']}/#{page_name}") end - assert page.has_text? look_for + assert page.has_text? look_for + if page_name == '/repositories' + assert_equal 1, page.all('a[data-original-title="show repository"]').count + end end end end