From 9115746fba4af52c98f97d76531e2c6ed6f7df1b Mon Sep 17 00:00:00 2001 From: radhika Date: Mon, 25 Aug 2014 19:19:41 -0400 Subject: [PATCH] 3112: move manage account testing into its own file --- .../integration/application_layout_test.rb | 51 ------------- .../integration/user_manage_account_test.rb | 76 +++++++++++++++++++ 2 files changed, 76 insertions(+), 51 deletions(-) create mode 100644 apps/workbench/test/integration/user_manage_account_test.rb diff --git a/apps/workbench/test/integration/application_layout_test.rb b/apps/workbench/test/integration/application_layout_test.rb index 99eed01c4c..6ddc72a921 100644 --- a/apps/workbench/test/integration/application_layout_test.rb +++ b/apps/workbench/test/integration/application_layout_test.rb @@ -110,52 +110,6 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest end end - # test manage_account page - def verify_manage_account user - if user && user['is_active'] - within('.navbar-fixed-top') do - find('a', text: "#{user['email']}").click - within('.dropdown-menu') do - find('a', text: 'Manage account').click - end - end - - # now in manage account page - assert page.has_text?('Virtual Machines'), 'No text - Virtual Machines' - assert page.has_text?('Repositories'), 'No text - Repositories' - assert page.has_text?('SSH Keys'), 'No text - SSH Keys' - assert page.has_text?('Current Token'), 'No text - Current Token' - - assert page.has_text?('The Arvados API token is a secret key that enables the Arvados SDKs to access Arvados'), 'No text - Arvados API token' - - click_link 'Add new SSH key' - - within '.modal-content' do - assert page.has_text?('Public Key'), 'No text - Public Key' - assert page.has_button?('Cancel'), 'No button - Cancel' - assert page.has_button?('Submit'), 'No button - Submit' - - page.find_field('public_key').set 'first test with an incorrect ssh key value' - click_button 'Submit' - assert page.has_text?('Public key does not appear to be a valid ssh-rsa or dsa public key'), 'No text - Public key does not appear to be a valid' - - public_key_str = api_fixture('authorized_keys')['active']['public_key'] - page.find_field('public_key').set public_key_str - page.find_field('name').set 'added_in_test' - click_button 'Submit' - assert page.has_text?('Public key already exists in the database, use a different key.'), 'No text - Public key already exists' - - new_key = SSHKey.generate - page.find_field('public_key').set new_key.ssh_public_key - page.find_field('name').set 'added_in_test' - click_button 'Submit' - end - - # key must be added. look for it in the refreshed page - assert page.has_text?('added_in_test'), 'No text - added_in_test' - end - end - [ [nil, nil, false, false], ['inactive', api_fixture('users')['inactive'], true, false], @@ -196,10 +150,5 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest visit page_with_token(token) verify_system_menu user end - - test "test manage account for user #{token}" do - visit page_with_token(token) - verify_manage_account user - end end end diff --git a/apps/workbench/test/integration/user_manage_account_test.rb b/apps/workbench/test/integration/user_manage_account_test.rb new file mode 100644 index 0000000000..ff2b7dd012 --- /dev/null +++ b/apps/workbench/test/integration/user_manage_account_test.rb @@ -0,0 +1,76 @@ +require 'integration_helper' +require 'selenium-webdriver' +require 'headless' + +class UserManageAccountTest < ActionDispatch::IntegrationTest + setup do + headless = Headless.new + headless.start + Capybara.current_driver = :selenium + end + + # test manage_account page + def verify_manage_account user + if user['is_active'] + within('.navbar-fixed-top') do + find('a', text: "#{user['email']}").click + within('.dropdown-menu') do + find('a', text: 'Manage account').click + end + end + + # now in manage account page + assert page.has_text?('Virtual Machines'), 'No text - Virtual Machines' + assert page.has_text?('Repositories'), 'No text - Repositories' + assert page.has_text?('SSH Keys'), 'No text - SSH Keys' + assert page.has_text?('Current Token'), 'No text - Current Token' + + assert page.has_text?('The Arvados API token is a secret key that enables the Arvados SDKs to access Arvados'), 'No text - Arvados API token' + + click_link 'Add new SSH key' + + within '.modal-content' do + assert page.has_text?('Public Key'), 'No text - Public Key' + assert page.has_button?('Cancel'), 'No button - Cancel' + assert page.has_button?('Submit'), 'No button - Submit' + + page.find_field('public_key').set 'first test with an incorrect ssh key value' + click_button 'Submit' + assert page.has_text?('Public key does not appear to be a valid ssh-rsa or dsa public key'), 'No text - Public key does not appear to be a valid' + + public_key_str = api_fixture('authorized_keys')['active']['public_key'] + page.find_field('public_key').set public_key_str + page.find_field('name').set 'added_in_test' + click_button 'Submit' + assert page.has_text?('Public key already exists in the database, use a different key.'), 'No text - Public key already exists' + + new_key = SSHKey.generate + page.find_field('public_key').set new_key.ssh_public_key + page.find_field('name').set 'added_in_test' + click_button 'Submit' + end + + # key must be added. look for it in the refreshed page + assert page.has_text?('added_in_test'), 'No text - added_in_test' + else # inactive user + within('.navbar-fixed-top') do + find('a', text: "#{user['email']}").click + within('.dropdown-menu') do + assert page.has_no_link?('Manage profile'), 'Found link - Manage profile' + end + end + end + end + + [ + ['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 manage account for user #{token}" do + visit page_with_token(token) + verify_manage_account user + end + end +end -- 2.30.2