X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6e28c722b3662f6ea769487c47ec14398e805a82..d3716fbfea120893e1a23915c5f9bcb7ca96c371:/apps/workbench/test/integration/link_account_test.rb?ds=sidebyside diff --git a/apps/workbench/test/integration/link_account_test.rb b/apps/workbench/test/integration/link_account_test.rb index 9a543d2cb0..53c7ec8553 100644 --- a/apps/workbench/test/integration/link_account_test.rb +++ b/apps/workbench/test/integration/link_account_test.rb @@ -10,6 +10,10 @@ class LinkAccountTest < ActionDispatch::IntegrationTest need_javascript end + teardown do + Rails.configuration.testing_override_login_url = false + end + def start_sso_stub token port = available_port('sso_stub') @@ -25,6 +29,10 @@ class LinkAccountTest < ActionDispatch::IntegrationTest s.shutdown } + s.mount_proc("/logout"){|req, res| + res.set_redirect(WEBrick::HTTPStatus::TemporaryRedirect, req.query["return_to"]) + } + Thread.new do s.start end @@ -34,8 +42,7 @@ class LinkAccountTest < ActionDispatch::IntegrationTest test "Add another login to this account" do visit page_with_token('active_trustedclient') - stub = start_sso_stub(api_fixture('api_client_authorizations')['project_viewer_trustedclient']['api_token']) - Rails.configuration.arvados_login_base = stub + "login" + Rails.configuration.testing_override_login_url = start_sso_stub(api_fixture('api_client_authorizations')['project_viewer_trustedclient']['api_token']) find("#notifications-menu").click assert_text "active-user@arvados.local" @@ -54,8 +61,7 @@ class LinkAccountTest < ActionDispatch::IntegrationTest test "Use this login to access another account" do visit page_with_token('project_viewer_trustedclient') - stub = start_sso_stub(api_fixture('api_client_authorizations')['active_trustedclient']['api_token']) - Rails.configuration.arvados_login_base = stub + "login" + Rails.configuration.testing_override_login_url = start_sso_stub(api_fixture('api_client_authorizations')['active_trustedclient']['api_token']) find("#notifications-menu").click assert_text "project-viewer@arvados.local" @@ -74,8 +80,7 @@ class LinkAccountTest < ActionDispatch::IntegrationTest test "Link login of inactive user to this account" do visit page_with_token('active_trustedclient') - stub = start_sso_stub(api_fixture('api_client_authorizations')['inactive_uninvited_trustedclient']['api_token']) - Rails.configuration.arvados_login_base = stub + "login" + Rails.configuration.testing_override_login_url = start_sso_stub(api_fixture('api_client_authorizations')['inactive_uninvited_trustedclient']['api_token']) find("#notifications-menu").click assert_text "active-user@arvados.local" @@ -94,8 +99,7 @@ class LinkAccountTest < ActionDispatch::IntegrationTest test "Cannot link to inactive user" do visit page_with_token('active_trustedclient') - stub = start_sso_stub(api_fixture('api_client_authorizations')['inactive_uninvited_trustedclient']['api_token']) - Rails.configuration.arvados_login_base = stub + "login" + Rails.configuration.testing_override_login_url = start_sso_stub(api_fixture('api_client_authorizations')['inactive_uninvited_trustedclient']['api_token']) find("#notifications-menu").click assert_text "active-user@arvados.local" @@ -108,6 +112,8 @@ class LinkAccountTest < ActionDispatch::IntegrationTest assert_text "Cannot link active-user@arvados.local" + assert find("#link-account-submit")['disabled'] + find("button", text: "Cancel").click find("#notifications-menu").click @@ -116,8 +122,7 @@ class LinkAccountTest < ActionDispatch::IntegrationTest test "Inactive user can link to active account" do visit page_with_token('inactive_uninvited_trustedclient') - stub = start_sso_stub(api_fixture('api_client_authorizations')['active_trustedclient']['api_token']) - Rails.configuration.arvados_login_base = stub + "login" + Rails.configuration.testing_override_login_url = start_sso_stub(api_fixture('api_client_authorizations')['active_trustedclient']['api_token']) find("#notifications-menu").click assert_text "inactive-uninvited-user@arvados.local" @@ -139,4 +144,27 @@ class LinkAccountTest < ActionDispatch::IntegrationTest assert_text "active-user@arvados.local" end + test "Admin cannot link to non-admin" do + visit page_with_token('admin_trustedclient') + Rails.configuration.testing_override_login_url = start_sso_stub(api_fixture('api_client_authorizations')['active_trustedclient']['api_token']) + + find("#notifications-menu").click + assert_text "admin@arvados.local" + + find("a", text: "Link account").click + find("button", text: "Use this login to access another account").click + + find("#notifications-menu").click + assert_text "active-user@arvados.local" + + assert_text "Cannot link admin account admin@arvados.local" + + assert find("#link-account-submit")['disabled'] + + find("button", text: "Cancel").click + + find("#notifications-menu").click + assert_text "admin@arvados.local" + end + end