Merge branch '16007-validate-group-class' refs #16007
[arvados.git] / apps / workbench / test / integration / link_account_test.rb
index b27542060e4f108ac29820804f54fb8a9951b0c6..53c7ec85532be6022d2dc89b35e09def57653f2b 100644 (file)
@@ -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"
@@ -118,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"
@@ -143,8 +146,7 @@ class LinkAccountTest < ActionDispatch::IntegrationTest
 
   test "Admin cannot link to non-admin" do
     visit page_with_token('admin_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 "admin@arvados.local"