need_javascript
end
+ teardown do
+ Rails.configuration.testing_override_login_url = false
+ end
+
def start_sso_stub token
port = available_port('sso_stub')
s.shutdown
}
+ s.mount_proc("/logout"){|req, res|
+ res.set_redirect(WEBrick::HTTPStatus::TemporaryRedirect, req.query["return_to"])
+ }
+
Thread.new do
s.start
end
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"
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"
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"
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"
assert_text "Cannot link active-user@arvados.local"
+ assert find("#link-account-submit")['disabled']
+
find("button", text: "Cancel").click
find("#notifications-menu").click
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"
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