within('.navbar-fixed-top') do
page.find("#arv-help").click
within('.dropdown-menu') do
- assert page.has_link? 'Tutorials and User guide'
- assert page.has_link? 'API Reference'
- assert page.has_link? 'SDK Reference'
+ assert page.has_link?('Tutorials and User guide'), 'No link - Tutorials and User guide'
+ assert page.has_link?('API Reference'), 'No link - API Reference'
+ assert page.has_link?('SDK Reference'), 'No link - SDK Reference'
+ assert page.has_link?('Show version / debugging info'), 'No link - Show version / debugging info'
+ assert page.has_link?('Report a problem'), 'No link - Report a problem'
-
- # check show version info link
- click_link 'Show version / debugging info'
- end
- end
-
- within '.modal-content' do
- assert page.has_text?('Version / debugging info'), 'No text - Version / debugging info'
- assert page.has_no_text?('Report a problem'), 'Found text - Report a problem'
- 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?('Workbench version'), 'No text - Workbench version'
- assert page.has_text?('Arvados base'), 'No text - Arvados base'
- assert page.has_text?('Additional info'), 'No text - Additional info'
- assert page.has_no_text?('Found a problem?'), 'Found text - Found a problem'
- assert page.has_button?('Close'), 'No button - Close'
- assert page.has_no_button?('Report issue'), 'Found button - Report issue'
- click_button 'Close'
- end
-
- # check report issue link
- within('.navbar-fixed-top') do
- page.find("#arv-help").click
- within('.dropdown-menu') do
- click_link 'Report a problem'
++ # Version info and Report a problem are tested in "report_issue_test.rb"
end
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'), 'Found 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?('Workbench version'), 'No text - Workbench version'
- assert page.has_text?('Arvados base'), 'No text - Arvados base'
- assert page.has_text?('Additional info'), 'No text - Additional info'
- assert page.has_text?('Found a problem?'), 'No text - Found a problem'
- assert page.has_no_button?('Close'), 'Found button - Close'
- assert page.has_button?('Report issue'), 'No button - Report issue'
- 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'
-
- # ajax success updated button texts and added footer message
- assert page.has_no_button?('Report issue'), 'Found button - Report issue'
- 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'
- assert page.has_text?('Thanks for reporting this issue'), 'No text - Thanks for reporting this issue'
-
- click_button 'Close'
- end
end
def verify_system_menu user
end
end
- assert page.has_text?(profile_message[0,25]), 'No text - configured profile message'
+ assert page.has_text? profile_message.gsub(/<.*?>/,'')
- assert page.has_text? required_field_title
+ assert page.has_text?(required_field_title), 'No text - configured required field title'
++
page.find_field('user[prefs][:profile][:'+required_field_key+']').set 'value to fill required field'
click_button "Save profile"
# profile saved and in profile page now with success
- assert page.has_text? 'Thank you for filling in your profile'
- click_link 'Back to work'
+ assert page.has_text?('Thank you for filling in your profile'), 'No text - Thank you for filling'
- click_button 'Access Arvados Workbench'
++ click_link 'Back to work!'
# profile saved and in home page now
- assert page.has_text? 'My projects'
- assert page.has_text? 'Projects shared with me'
- end
-
- # test the search box
- def verify_search_box user
- if user && user['is_active']
- # let's search for a valid uuid
- within('.navbar-fixed-top') do
- page.find_field('search').set user['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']}']"
-
- # let's search again for an invalid valid 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('.glyphicon-search').click
- end
-
- # we should see 'not found' error page
- assert page.has_text? 'Not Found'
-
- # let's search for the anonymously accessible project
- publicly_accessible_project = api_fixture('groups')['anonymously_accessible_project']
-
- 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('.glyphicon-search').click
- end
-
- within '.modal-content' do
- assert page.has_text? 'All projects'
- assert page.has_text? 'Search'
- assert page.has_text? 'Cancel'
- assert_selector('div', text: publicly_accessible_project['name'])
- find(:xpath, '//div[./span[contains(.,publicly_accessible_project["uuid"])]]').click
-
- click_button 'Show'
- end
-
- # seeing "Unrestricted public data" now
- assert page.has_text? publicly_accessible_project['name']
- assert page.has_text? publicly_accessible_project['description']
- end
+ assert page.has_text?('My projects'), 'No text - My projects'
+ assert page.has_text?('Projects shared with me'), 'No text - Projects shared with me'
end
- # test the search box
- def verify_search_box user
- if user && user['is_active']
- # let's search for a valid uuid
- within('.navbar-fixed-top') do
- page.find_field('search').set user['uuid']
- page.find('.glyphicon-search').click
- end
-
- # we should now be in the user's page as a result of search
- assert page.has_text?(user['first_name']), 'No text - user first name'
-
- # let's search again for an invalid valid 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('.glyphicon-search').click
- end
-
- # we should see 'not found' error page
- assert page.has_text?('Not Found'), 'No text - Not Found'
- assert page.has_link?('Report problem'), 'No text - Report problem'
- click_link 'Report problem'
- 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_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'
-
- # ajax success updated button texts and added footer message
- assert page.has_no_button?('Report issue'), 'Found button - Report issue'
- 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'
- assert page.has_text?('Thanks for reporting this issue'), 'No text - Thanks for reporting this issue'
-
- click_button 'Close'
- end
-
- # let's search for the anonymously accessible project
- publicly_accessible_project = api_fixture('groups')['anonymously_accessible_project']
-
- 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('.glyphicon-search').click
- end
-
- within '.modal-content' do
- assert page.has_text?('All projects'), 'No text - All projects'
- 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
-
- 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'
- end
- end
-
[
[nil, nil, false, false],
['inactive', api_fixture('users')['inactive'], true, false],
end
[
-- ['active', api_fixture('users')['active'], true, true],
-- ['admin', api_fixture('users')['admin'], true, true],
++ ['active', api_fixture('users')['active']],
++ ['admin', api_fixture('users')['admin']],
].each do |token, user|
+
test "test system menu for user #{token}" do
visit page_with_token(token)
verify_system_menu user
visit page_with_token(token)
verify_manage_account user
end
--
-- test "test search for user #{token}" do
-- visit page_with_token(token)
-- verify_search_box user
-- end
-
end
-
end
--- /dev/null
--- /dev/null
++require 'integration_helper'
++require 'selenium-webdriver'
++require 'headless'
++
++class ApplicationLayoutTest < ActionDispatch::IntegrationTest
++ setup do
++ headless = Headless.new
++ headless.start
++ Capybara.current_driver = :selenium
++
++ @user_profile_form_fields = Rails.configuration.user_profile_form_fields
++ end
++
++ teardown do
++ Rails.configuration.user_profile_form_fields = @user_profile_form_fields
++ end
++
++ # test version info and report issue from help menu
++ def check_version_info_and_report_issue_from_help_menu
++ within('.navbar-fixed-top') do
++ page.find("#arv-help").click
++ within('.dropdown-menu') do
++ assert page.has_link?('Tutorials and User guide'), 'No link - Tutorials and User guide'
++ assert page.has_link?('API Reference'), 'No link - API Reference'
++ assert page.has_link?('SDK Reference'), 'No link - SDK Reference'
++ assert page.has_link?('Show version / debugging info'), 'No link - Show version / debugging info'
++ assert page.has_link?('Report a problem'), 'No link - Report a problem'
++
++ # check show version info link
++ click_link 'Show version / debugging info'
++ end
++ end
++
++ within '.modal-content' do
++ assert page.has_text?('Version / debugging info'), 'No text - Version / debugging info'
++ assert page.has_no_text?('Report a problem'), 'Found text - Report a problem'
++ 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?('Workbench version'), 'No text - Workbench version'
++ assert page.has_text?('Arvados base'), 'No text - Arvados base'
++ assert page.has_text?('Additional info'), 'No text - Additional info'
++ assert page.has_no_text?('Found a problem?'), 'Found text - Found a problem'
++ assert page.has_button?('Close'), 'No button - Close'
++ assert page.has_no_button?('Report issue'), 'Found button - Report issue'
++ click_button 'Close'
++ end
++
++ # check report issue link
++ within('.navbar-fixed-top') do
++ page.find("#arv-help").click
++ within('.dropdown-menu') do
++ click_link 'Report a problem'
++ end
++ 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'), 'Found 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?('Workbench version'), 'No text - Workbench version'
++ assert page.has_text?('Arvados base'), 'No text - Arvados base'
++ assert page.has_text?('Additional info'), 'No text - Additional info'
++ assert page.has_text?('Found a problem?'), 'No text - Found a problem'
++ assert page.has_no_button?('Close'), 'Found button - Close'
++ assert page.has_button?('Report issue'), 'No button - Report issue'
++ 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'
++
++ # ajax success updated button texts and added footer message
++ assert page.has_no_button?('Report issue'), 'Found button - Report issue'
++ 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'
++ assert page.has_text?('Thanks for reporting this issue'), 'No text - Thanks for reporting this issue'
++
++ click_button 'Close'
++ 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']],
++ ['active_no_prefs', api_fixture('users')['active_no_prefs']],
++ ['active_no_prefs_profile', api_fixture('users')['active_no_prefs_profile']],
++ ].each do |token, user|
++
++ test "check help for user #{token}" do
++ if !token
++ visit ('/')
++ else
++ visit page_with_token(token)
++ end
++
++ check_version_info_and_report_issue_from_help_menu
++ end
++
++ end
++
++end
--- /dev/null
--- /dev/null
++require 'integration_helper'
++require 'selenium-webdriver'
++require 'headless'
++
++class ApplicationLayoutTest < ActionDispatch::IntegrationTest
++ setup do
++ headless = Headless.new
++ headless.start
++ Capybara.current_driver = :selenium
++ end
++
++ # test the search box
++ def verify_search_box user
++ if user && user['is_active']
++ # let's search for a valid uuid
++ within('.navbar-fixed-top') do
++ page.find_field('search').set user['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"
++
++ # let's search again for an invalid valid 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('.glyphicon-search').click
++ end
++
++ # we should see 'not found' error page
++ assert page.has_text?('Not Found'), 'No text - Not Found'
++ assert page.has_link?('Report problem'), 'No text - Report problem'
++ click_link 'Report problem'
++ 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_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'
++
++ # ajax success updated button texts and added footer message
++ assert page.has_no_button?('Report issue'), 'Found button - Report issue'
++ 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'
++ assert page.has_text?('Thanks for reporting this issue'), 'No text - Thanks for reporting this issue'
++
++ click_button 'Close'
++ end
++
++ # let's search for the anonymously accessible project
++ publicly_accessible_project = api_fixture('groups')['anonymously_accessible_project']
++
++ 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('.glyphicon-search').click
++ end
++
++ within '.modal-content' do
++ assert page.has_text?('All projects'), 'No text - All projects'
++ 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
++
++ 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'
++ end
++ end
++
++ [
++ ['active', api_fixture('users')['active']],
++ ['admin', api_fixture('users')['admin']],
++ ].each do |token, user|
++
++ test "test search for user #{token}" do
++ visit page_with_token(token)
++
++ verify_search_box user
++ end
++
++ end
++
++end