# SPDX-License-Identifier: AGPL-3.0
require 'integration_helper'
+require 'config_validators'
class ApplicationLayoutTest < ActionDispatch::IntegrationTest
# These tests don't do state-changing API calls. Save some time by
end
def verify_homepage user, invited, has_profile
- profile_config = Rails.configuration.user_profile_form_fields
+ profile_config = Rails.configuration.Workbench.UserProfileFormFields
if !user
assert page.has_text?('Please log in'), 'Not found text - Please log in'
- assert page.has_text?('The "Log in" button below will show you a Google sign-in page'), 'Not found text - google sign in page'
+ assert page.has_text?('If you have never used Arvados Workbench before'), 'Not found text - If you have never'
assert page.has_no_text?('My projects'), 'Found text - My projects'
- assert page.has_link?("Log in to #{Rails.configuration.site_name}"), 'Not found text - log in to'
+ assert page.has_link?("Log in"), 'Not found text - Log in'
elsif user['is_active']
if profile_config && !has_profile
assert page.has_text?('Save profile'), 'No text - Save profile'
within('.navbar-fixed-top') do
if !user
- assert_text Rails.configuration.site_name.downcase
- assert_no_selector 'a', text: Rails.configuration.site_name.downcase
+ assert_text Rails.configuration.Workbench.SiteName.downcase
+ assert_no_selector 'a', text: Rails.configuration.Workbench.SiteName.downcase
assert page.has_link?('Log in'), 'Not found link - Log in'
else
# my account menu
- assert_selector 'a', text: Rails.configuration.site_name.downcase
+ assert_selector 'a', text: Rails.configuration.Workbench.SiteName.downcase
assert(page.has_link?("notifications-menu"), 'no user menu')
page.find("#notifications-menu").click
within('.dropdown-menu') do
].each do |token, user, invited, has_profile|
test "visit home page for user #{token}" do
+ Rails.configuration.Users.AnonymousUserToken = ""
if !token
visit ('/')
else
end
end
+ [
+ ["", false],
+ ['http://wb2.example.org//', false],
+ ['ftp://wb2.example.org', false],
+ ['wb2.example.org', false],
+ ['http://wb2.example.org', true],
+ ['https://wb2.example.org', true],
+ ['http://wb2.example.org/', true],
+ ['https://wb2.example.org/', true],
+ ].each do |wb2_url_config, wb2_menu_appear|
+ test "workbench2_url=#{wb2_url_config} should#{wb2_menu_appear ? '' : ' not'} show WB2 menu" do
+ Rails.configuration.Services.Workbench2.ExternalURL = URI(wb2_url_config)
+ if !wb2_menu_appear and !wb2_url_config.empty?
+ assert_raises RuntimeError do
+ ConfigValidators.validate_wb2_url_config()
+ end
+ Rails.configuration.Services.Workbench2.ExternalURL = URI("")
+ end
+
+ visit page_with_token('active')
+ within('.navbar-fixed-top') do
+ page.find("#notifications-menu").click
+ within('.dropdown-menu') do
+ assert_equal wb2_menu_appear, page.has_text?('Go to Workbench 2')
+ end
+ end
+ end
+ end
+
[
['active', true],
['active_with_prefs_profile_no_getting_started_shown', false],
].each do |token, getting_started_shown|
test "getting started help menu item #{getting_started_shown}" do
- Rails.configuration.enable_getting_started_popup = true
+ Rails.configuration.Workbench.EnableGettingStartedPopup = true
visit page_with_token(token)
first('button', text: 'x').click
end
- assert_text 'Recent pipelines and processes' # seeing dashboard now
+ assert_text 'Recent processes' # seeing dashboard now
end
end
test "test arvados_public_data_doc_url config unset" do
- Rails.configuration.arvados_public_data_doc_url = false
+ Rails.configuration.Workbench.ArvadosPublicDataDocURL = ""
visit page_with_token('active')
within '.navbar-fixed-top' do
end
test "no SSH public key notification when shell_in_a_box_url is configured" do
- Rails.configuration.shell_in_a_box_url = 'example.com'
+ Rails.configuration.Services.WebShell.ExternalURL = URI('http://example.com')
+ Rails.configuration.Users.AnonymousUserToken = ""
visit page_with_token('job_reader')
click_link 'notifications-menu'
assert_no_selector 'a', text:'Click here to set up an SSH public key for use with Arvados.'
['SSH keys', nil, 'public_key'],
['Links', nil, 'link_class'],
['Groups', nil, 'All users'],
- ['Compute nodes', nil, 'ping_secret'],
['Keep services', nil, 'service_ssl_flag'],
- ['Keep disks', nil, 'bytes_free'],
].each do |page_name, add_button_text, look_for|
test "test system menu #{page_name} link" do
visit page_with_token('admin')
test "visit dashboard as #{token}" do
visit page_with_token(token)
- assert_text 'Recent pipelines and processes' # seeing dashboard now
+ assert_text 'Recent processes' # seeing dashboard now
within('.recent-processes-actions') do
assert page.has_link?('Run a process')
assert page.has_link?('All processes')
assert page.has_link? 'foo_file'
end
end
-
- within('.compute-node-actions') do
- if is_admin
- assert page.has_link?('All nodes')
- else
- assert page.has_no_link?('All nodes')
- end
- end
-
- within('.compute-node-summary-pane') do
- click_link 'Details'
- assert_text 'compute0'
- end
end
end
end