X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d8616b7126de7e234b901b9bb166b5e4203da3c0..23138fc621581634579294751beeff7f5e66358e:/apps/workbench/test/integration/anonymous_access_test.rb diff --git a/apps/workbench/test/integration/anonymous_access_test.rb b/apps/workbench/test/integration/anonymous_access_test.rb index 6e28e4efb4..0842635f60 100644 --- a/apps/workbench/test/integration/anonymous_access_test.rb +++ b/apps/workbench/test/integration/anonymous_access_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'integration_helper' class AnonymousAccessTest < ActionDispatch::IntegrationTest @@ -8,7 +12,7 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest setup do need_javascript - Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token'] + Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token'] end PUBLIC_PROJECT = "/projects/#{api_fixture('groups')['anonymously_accessible_project']['uuid']}" @@ -29,7 +33,7 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest assert_text 'indicate that you have read and accepted the user agreement' end within('.navbar-fixed-top') do - 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 @@ -39,8 +43,8 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest else # anonymous assert_text 'Unrestricted public data' within('.navbar-fixed-top') do - 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_selector 'a', text: 'Log in' assert_selector 'a', text: 'Browse public projects' end @@ -114,9 +118,9 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest test 'view file' do magic = rand(2**512).to_s 36 - CollectionsController.any_instance.stubs(:file_enumerator).returns([magic]) - collection = api_fixture('collections')['public_text_file'] - visit '/collections/' + collection['uuid'] + owner = api_fixture('groups')['anonymously_accessible_project']['uuid'] + col = upload_data_and_get_collection(magic, 'admin', "Hello\\040world.txt", owner) + visit '/collections/' + col.uuid find('tr,li', text: 'Hello world.txt'). find('a[title~=View]').click assert_text magic @@ -167,24 +171,40 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest assert_no_selector 'a', text: 'Re-run options' end - test "anonymous user accesses pipeline templates tab in shared project" do - visit PUBLIC_PROJECT - click_link 'Data collections' - assert_text 'GNU General Public License' + [ + 'pipelineTemplate', + 'workflow' + ].each do |type| + test "anonymous user accesses pipeline templates tab in shared project and click on #{type}" do + visit PUBLIC_PROJECT + click_link 'Data collections' + assert_text 'GNU General Public License' - assert_selector 'a', text: 'Pipeline templates' + assert_selector 'a', text: 'Pipeline templates' - click_link 'Pipeline templates' - assert_text 'Pipeline template in publicly accessible project' + click_link 'Pipeline templates' + assert_text 'Pipeline template in publicly accessible project' + assert_text 'Workflow with input specifications' - within first('tr[data-kind="arvados#pipelineTemplate"]') do - click_link 'Show' - end + if type == 'pipelineTemplate' + within first('tr[data-kind="arvados#pipelineTemplate"]') do + click_link 'Show' + end - # in template page - assert_text 'Public Projects Unrestricted public data' - assert_text 'script version' - assert_no_selector 'a', text: 'Run this pipeline' + # in template page + assert_text 'Public Projects Unrestricted public data' + assert_text 'script version' + assert_no_selector 'a', text: 'Run this pipeline' + else + within first('tr[data-kind="arvados#workflow"]') do + click_link 'Show' + end + + # in workflow page + assert_text 'Public Projects Unrestricted public data' + assert_text 'this workflow has inputs specified' + end + end end test "anonymous user accesses subprojects tab in shared project" do @@ -235,7 +255,7 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest if objects_readable assert_selector 'a[href="#Log"]', text: 'Log' assert_no_selector 'a[data-toggle="disabled"]', text: 'Log' - assert_no_text 'Output data not available' + assert_no_text 'zzzzz-4zz18-bv31uwvy3neko21 (Unavailable)' if pipeline_page assert_text 'This pipeline was created from' job_id = object['components']['foo']['job']['uuid'] @@ -250,7 +270,7 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest end else assert_selector 'a[data-toggle="disabled"]', text: 'Log' - assert_text 'Output data not available' + assert_text 'zzzzz-4zz18-bv31uwvy3neko21 (Unavailable)' assert_text object['job'] if pipeline_page assert_no_text 'This pipeline was created from' # template is not readable @@ -258,7 +278,7 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest assert_text 'Log unavailable' end find(:xpath, "//a[@href='#Log']").click - assert_text 'Output data not available' + assert_text 'zzzzz-4zz18-bv31uwvy3neko21 (Unavailable)' assert_no_text expect_log_text end end