X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1da134abb8984d85db86ec4be8755aa49f3bfc47..aba81749d2477043232b82300c0ce15548b61888:/apps/workbench/test/integration/search_box_test.rb diff --git a/apps/workbench/test/integration/search_box_test.rb b/apps/workbench/test/integration/search_box_test.rb index 0cdfdc8aab..51d615fe2d 100644 --- a/apps/workbench/test/integration/search_box_test.rb +++ b/apps/workbench/test/integration/search_box_test.rb @@ -1,31 +1,35 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'integration_helper' -require 'selenium-webdriver' -require 'headless' class SearchBoxTest < ActionDispatch::IntegrationTest setup do - headless = Headless.new - headless.start - Capybara.current_driver = :selenium + need_javascript end # test the search box def verify_search_box user if user && user['is_active'] - # let's search for a valid uuid + aproject_uuid = api_fixture('groups')['aproject']['uuid'] + # let's search for aproject by uuid within('.navbar-fixed-top') do - page.find_field('search').set user['uuid'] + page.has_field?('search this site') + page.find_field('search this site').set aproject_uuid page.find('.glyphicon-search').click end - # we should now be in the user's home project as a result of search - assert_selector "#Data_collections[data-object-uuid='#{user['uuid']}']", "Expected to be in user page after search click" + # we should now be in aproject as a result of search + assert_selector 'a', text:'Data collections' + click_link 'Data collections' + assert_selector "#Data_collections[data-object-uuid='#{aproject_uuid}']", "Expected to be in user page after search click" - # let's search again for an invalid valid uuid + # let's search again for an invalid uuid within('.navbar-fixed-top') do search_for = String.new user['uuid'] search_for[0]='1' - page.find_field('search').set search_for + page.find_field('search this site').set search_for page.find('.glyphicon-search').click end @@ -37,15 +41,17 @@ class SearchBoxTest < ActionDispatch::IntegrationTest assert page.has_text?('Report a problem'), 'No text - Report a problem' assert page.has_no_text?('Version / debugging info'), 'No text - Version / debugging info' assert page.has_text?('Describe the problem'), 'No text - Describe the problem' - assert page.has_button?('Send problem report'), 'No button - Send problem report' + assert page.has_text?('Send problem report'), 'Send problem report button text is not found' + assert page.has_no_button?('Send problem report'), 'Send problem report button is not disabled before entering problem description' assert page.has_button?('Cancel'), 'No button - Cancel' # enter a report text and click on report page.find_field('report_issue_text').set 'my test report text' + assert page.has_button?('Send problem report'), 'Send problem report button not enabled after entering text' click_button 'Send problem report' # ajax success updated button texts and added footer message - assert page.has_no_button?('Send problem report'), 'Found button - Send problem report' + assert page.has_no_text?('Send problem report'), 'Found button - Send problem report' assert page.has_no_button?('Cancel'), 'Found button - Cancel' assert page.has_text?('Report sent'), 'No text - Report sent' assert page.has_button?('Close'), 'No text - Close' @@ -59,7 +65,7 @@ class SearchBoxTest < ActionDispatch::IntegrationTest within('.navbar-fixed-top') do # search again for the anonymously accessible project - page.find_field('search').set publicly_accessible_project['name'][0,10] + page.find_field('search this site').set publicly_accessible_project['name'][0,10] page.find('.glyphicon-search').click end @@ -68,7 +74,7 @@ class SearchBoxTest < ActionDispatch::IntegrationTest assert page.has_text?('Search'), 'No text - Search' assert page.has_text?('Cancel'), 'No text - Cancel' assert_selector('div', text: publicly_accessible_project['name']) - find(:xpath, '//div[./span[contains(.,publicly_accessible_project["uuid"])]]').click + find("div[data-object-uuid=#{publicly_accessible_project["uuid"]}]").click click_button 'Show' end @@ -76,10 +82,17 @@ class SearchBoxTest < ActionDispatch::IntegrationTest # seeing "Unrestricted public data" now assert page.has_text?(publicly_accessible_project['name']), 'No text - publicly accessible project name' assert page.has_text?(publicly_accessible_project['description']), 'No text - publicly accessible project description' + else + within('.navbar-fixed-top') do + page.has_no_field?('search this site') + end end end [ + [nil, nil], + ['inactive', api_fixture('users')['inactive']], + ['inactive_uninvited', api_fixture('users')['inactive_uninvited']], ['active', api_fixture('users')['active']], ['admin', api_fixture('users')['admin']], ].each do |token, user|