+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
require 'integration_helper'
-require 'selenium-webdriver'
-require 'headless'
-class ApplicationLayoutTest < ActionDispatch::IntegrationTest
+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
within '.modal-content' do
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?('Server version'), 'No text - Server version'
- assert page.has_text?('Server restarted at'), 'No text - Server restarted at'
- assert page.has_text?('Found a problem?'), 'No text - Found a problem'
- assert page.has_button?('Report issue'), 'No button - Report issue'
+ assert page.has_text?('Describe the problem'), 'No text - Describe the problem'
+ 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'
- click_button 'Report issue'
+ 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?('Report issue'), 'Found button - Report issue'
+ 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'
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
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
# 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|
- test "test search for user #{token}" do
+ test "test search box for user #{token}" do
visit page_with_token(token)
verify_search_box user