14812: First pass migrating tests.
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Thu, 27 Jun 2019 20:35:28 +0000 (16:35 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 1 Jul 2019 16:22:25 +0000 (12:22 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

27 files changed:
apps/workbench/app/helpers/collections_helper.rb
apps/workbench/config/arvados_config.rb
apps/workbench/test/controllers/actions_controller_test.rb
apps/workbench/test/controllers/application_controller_test.rb
apps/workbench/test/controllers/collections_controller_test.rb
apps/workbench/test/controllers/disabled_api_test.rb
apps/workbench/test/controllers/projects_controller_test.rb
apps/workbench/test/controllers/users_controller_test.rb
apps/workbench/test/integration/anonymous_access_test.rb
apps/workbench/test/integration/application_layout_test.rb
apps/workbench/test/integration/download_test.rb
apps/workbench/test/integration/errors_test.rb
apps/workbench/test/integration/jobs_test.rb
apps/workbench/test/integration/link_account_test.rb
apps/workbench/test/integration/projects_test.rb
apps/workbench/test/integration/report_issue_test.rb
apps/workbench/test/integration/user_profile_test.rb
apps/workbench/test/integration/user_settings_menu_test.rb
apps/workbench/test/integration/websockets_test.rb
apps/workbench/test/integration/work_units_test.rb
apps/workbench/test/integration_helper.rb
apps/workbench/test/integration_performance/collection_unit_test.rb
apps/workbench/test/test_helper.rb
apps/workbench/test/unit/user_test.rb
apps/workbench/test/unit/work_unit_test.rb
lib/config/config.default.yml
services/login-sync/Gemfile.lock

index 3f62a5601c53e443d8a3b8ddcd49db6671a3c752..0c89ca8783c0c45b523a33c4c8fd495ce17f0c58 100644 (file)
@@ -72,7 +72,7 @@ module CollectionsHelper
     elsif (file_type.raw_media_type == "text") || (file_type.raw_media_type == "image")
       true
     elsif (file_type.raw_media_type == "application") &&
-          Rails.configuration.Workbench.Workbench.ApplicationMimetypesWithViewIcon[file_type.sub_type]
+          Rails.configuration.Workbench.ApplicationMimetypesWithViewIcon[file_type.sub_type]
       true
     else
       false
index a3a01cabfa6b9be67a10283c3ff1d914accda053..914c3097bf260a2380b2f133d64cf8291e2b1266 100644 (file)
@@ -96,6 +96,9 @@ arvcfg.declare_config "Services.Workbench2.ExternalURL", URI, :workbench2_url
 
 arvcfg.declare_config "Users.AnonymousUserToken", String, :anonymous_user_token
 
+arvcfg.declare_config "Workbench.SecretToken", String, :secret_token
+arvcfg.declare_config "Workbench.SecretKeyBase", String, :secret_key_base
+
 arvcfg.declare_config "Workbench.ApplicationMimetypesWithViewIcon", Hash, :application_mimetypes_with_view_icon, ->(cfg, k, v) {
   mimetypes = {}
   v.each do |m|
@@ -107,12 +110,17 @@ arvcfg.declare_config "Workbench.ApplicationMimetypesWithViewIcon", Hash, :appli
 arvcfg.declare_config "Workbench.RunningJobLogRecordsToFetch", Integer, :running_job_log_records_to_fetch
 arvcfg.declare_config "Workbench.LogViewerMaxBytes", Integer, :log_viewer_max_bytes
 arvcfg.declare_config "Workbench.TrustAllContent", Boolean, :trust_all_content
-arvcfg.declare_config "Workbench.UserProfileFormFields", Hash, :user_profile_form_fields
+arvcfg.declare_config "Workbench.UserProfileFormFields", Array, :user_profile_form_fields, ->(cfg, k, v) {
+  if !v
+    v = []
+  end
+  ConfigLoader.set_cfg cfg, "Workbench.UserProfileFormFields", v
+}
 arvcfg.declare_config "Workbench.UserProfileFormMessage", String, :user_profile_form_message
 arvcfg.declare_config "Workbench.Theme", String, :arvados_theme
 arvcfg.declare_config "Workbench.ShowUserNotifications", Boolean, :show_user_notifications
 arvcfg.declare_config "Workbench.ShowUserAgreementInline", Boolean, :show_user_agreement_inline
-arvcfg.declare_config "Workbench.RepositoryCache", Boolean, :repository_cache
+arvcfg.declare_config "Workbench.RepositoryCache", String, :repository_cache
 arvcfg.declare_config "Workbench.Repositories", Boolean, :repositories
 arvcfg.declare_config "Workbench.APIClientConnectTimeout", ActiveSupport::Duration, :api_client_connect_timeout
 arvcfg.declare_config "Workbench.APIClientReceiveTimeout", ActiveSupport::Duration, :api_client_receive_timeout
@@ -171,5 +179,5 @@ ArvadosWorkbench::Application.configure do
   # Rails.configuration.API["Blah"]
   ConfigLoader.copy_into_config $arvados_config, config
   ConfigLoader.copy_into_config $remaining_config, config
-  secrets.secret_key_base = $arvados_config["Workbench"]["SecretToken"]
+  secrets.secret_key_base = $arvados_config["Workbench"]["SecretKeyBase"]
 end
index 86aa304e472324f992b7e72b5b1e7d27580f38e3..fbbffe87cb875e93528f84c3f29f3908ca996946 100644 (file)
@@ -173,7 +173,7 @@ class ActionsControllerTest < ActionController::TestCase
     ['pipeline_templates', 'pipeline_template_in_publicly_accessible_project'],
   ].each do |dm, fixture|
     test "access show method for public #{dm} and expect to see page" do
-      Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+      Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
       get(:show, params: {uuid: api_fixture(dm)[fixture]['uuid']})
       assert_response :redirect
       if dm == 'groups'
@@ -193,7 +193,7 @@ class ActionsControllerTest < ActionController::TestCase
     ['traits', 'owned_by_aproject_with_no_name', :redirect],
   ].each do |dm, fixture, expected|
     test "access show method for non-public #{dm} and expect #{expected}" do
-      Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+      Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
       get(:show, params: {uuid: api_fixture(dm)[fixture]['uuid']})
       assert_response expected
       if expected == 404
index b908c46def39664abb4b1715cba6b4f996a1caab..8b81d3a1f4b3362891f84fe901d46b12e721cd59 100644 (file)
@@ -346,7 +346,7 @@ class ApplicationControllerTest < ActionController::TestCase
       true
     end.returns fake_api_response('{}', 200, {})
 
-    Rails.configuration.anonymous_user_token =
+    Rails.configuration.Users.AnonymousUserToken =
       api_fixture("api_client_authorizations", "anonymous", "api_token")
     @controller = ProjectsController.new
     test_uuid = "zzzzz-j7d0g-zzzzzzzzzzzzzzz"
@@ -374,7 +374,7 @@ class ApplicationControllerTest < ActionController::TestCase
   ].each do |css_selector|
     test "login link at #{css_selector.inspect} includes return_to param" do
       # Without an anonymous token, we're immediately redirected to login.
-      Rails.configuration.anonymous_user_token =
+      Rails.configuration.Users.AnonymousUserToken =
         api_fixture("api_client_authorizations", "anonymous", "api_token")
       @controller = ProjectsController.new
       test_uuid = "zzzzz-j7d0g-zzzzzzzzzzzzzzz"
@@ -393,17 +393,17 @@ class ApplicationControllerTest < ActionController::TestCase
     # We're really testing ApplicationController's render_exception.
     # Our primary concern is that it doesn't raise an error and
     # return 500.
-    orig_api_server = Rails.configuration.arvados_v1_base
+    orig_api_server = Rails.configuration.Services.Controller.ExternalURL
     begin
       # The URL should look valid in all respects, and avoid talking over a
       # network.  100::/64 is the IPv6 discard prefix, so it's perfect.
-      Rails.configuration.arvados_v1_base = "https://[100::f]:1/"
+      Rails.configuration.Services.Controller.ExternalURL = "https://[100::f]:1/"
       @controller = NodesController.new
       get(:index, params: {}, session: session_for(:active))
       assert_includes(405..422, @response.code.to_i,
                       "bad response code when API server is unreachable")
     ensure
-      Rails.configuration.arvados_v1_base = orig_api_server
+      Rails.configuration.Services.Controller.ExternalURL = orig_api_server
     end
   end
 
@@ -421,9 +421,9 @@ class ApplicationControllerTest < ActionController::TestCase
   ].each do |controller, fixture, anon_config=true|
     test "#{controller} show method with anonymous config #{anon_config ? '' : 'not '}enabled" do
       if anon_config
-        Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+        Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
       else
-        Rails.configuration.anonymous_user_token = false
+        Rails.configuration.Users.AnonymousUserToken = false
       end
 
       @controller = controller
index 88287cd3f3d1cd0b5e65ed980b4c58b6ce4b13dd..6d7d2996d337c4377a9972a5207d06aa3fbad05f 100644 (file)
@@ -15,7 +15,7 @@ class CollectionsControllerTest < ActionController::TestCase
   NONEXISTENT_COLLECTION = "ffffffffffffffffffffffffffffffff+0"
 
   def config_anonymous enable
-    Rails.configuration.anonymous_user_token =
+    Rails.configuration.Users.AnonymousUserToken =
       if enable
         api_token('anonymous')
       else
@@ -471,9 +471,9 @@ class CollectionsControllerTest < ActionController::TestCase
     assert_not_includes @response.body, '<a href="#Upload"'
   end
 
-  def setup_for_keep_web cfg='https://%{uuid_or_pdh}.example', dl_cfg=false
-    Rails.configuration.keep_web_url = cfg
-    Rails.configuration.keep_web_download_url = dl_cfg
+  def setup_for_keep_web cfg='https://*.example', dl_cfg=false
+    Rails.configuration.Services.WebDAV.ExternalURL = cfg
+    Rails.configuration.Services.WebDAVDownload.ExternalURL = dl_cfg
   end
 
   %w(uuid portable_data_hash).each do |id_type|
@@ -532,9 +532,9 @@ class CollectionsControllerTest < ActionController::TestCase
     end
 
     test "Redirect to keep_web_url via #{id_type} when trust_all_content enabled" do
-      Rails.configuration.trust_all_content = true
-      setup_for_keep_web('https://collections.example/c=%{uuid_or_pdh}',
-                         'https://download.example/c=%{uuid_or_pdh}')
+      Rails.configuration.Workbench.TrustAllContent = true
+      setup_for_keep_web('https://collections.example',
+                         'https://download.example')
       tok = api_token('active')
       id = api_fixture('collections')['w_a_z_file'][id_type]
       get :show_file, params: {uuid: id, file: "w a z"}, session: session_for(:active)
@@ -583,7 +583,7 @@ class CollectionsControllerTest < ActionController::TestCase
 
   [false, true].each do |trust_all_content|
     test "Redirect preview to keep_web_download_url when preview is disabled and trust_all_content is #{trust_all_content}" do
-      Rails.configuration.trust_all_content = trust_all_content
+      Rails.configuration.Workbench.TrustAllContent = trust_all_content
       setup_for_keep_web false, 'https://download.example/c=%{uuid_or_pdh}'
       tok = api_token('active')
       id = api_fixture('collections')['w_a_z_file']['uuid']
index 556b958d00a8f0fe50c1a9af9d81b62c2eeb1771..9144564c912bb96735b4ce967e06b2e1795ec30e 100644 (file)
@@ -59,7 +59,7 @@ class DisabledApiTest < ActionController::TestCase
     test "project tabs as user #{user} when pipeline related index APIs are disabled" do
       @controller = ProjectsController.new
 
-      Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+      Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
 
       dd = ArvadosApiClient.new_or_current.discovery.deep_dup
       dd[:resources][:pipeline_templates][:methods].delete(:index)
index 09a6950cead6fad12ce20262c3eda4a6d978d91c..0b04f80d7c411fdddf9012a16059beb039d9cc64 100644 (file)
@@ -240,14 +240,14 @@ class ProjectsControllerTest < ActionController::TestCase
   end
 
   test "visit non-public project as anonymous when anonymous browsing is enabled and expect page not found" do
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
     get(:show, params: {id: api_fixture('groups')['aproject']['uuid']})
     assert_response 404
     assert_match(/log ?in/i, @response.body)
   end
 
   test "visit home page as anonymous when anonymous browsing is enabled and expect login" do
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
     get(:index)
     assert_response :redirect
     assert_match /\/users\/welcome/, @response.redirect_url
@@ -258,7 +258,7 @@ class ProjectsControllerTest < ActionController::TestCase
     :active,
   ].each do |user|
     test "visit public projects page when anon config is enabled, as user #{user}, and expect page" do
-      Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+      Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
 
       if user
         get :public, params: {}, session: session_for(user)
@@ -276,22 +276,22 @@ class ProjectsControllerTest < ActionController::TestCase
   end
 
   test "visit public projects page when anon config is not enabled as active user and expect 404" do
-    Rails.configuration.anonymous_user_token = nil
-    Rails.configuration.enable_public_projects_page = false
+    Rails.configuration.Users.AnonymousUserToken = ""
+    Rails.configuration.Workbench.EnablePublicProjectsPage = false
     get :public, params: {}, session: session_for(:active)
     assert_response 404
   end
 
   test "visit public projects page when anon config is enabled but public projects page is disabled as active user and expect 404" do
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
-    Rails.configuration.enable_public_projects_page = false
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Workbench.EnablePublicProjectsPage = false
     get :public, params: {}, session: session_for(:active)
     assert_response 404
   end
 
   test "visit public projects page when anon config is not enabled as anonymous and expect login page" do
-    Rails.configuration.anonymous_user_token = nil
-    Rails.configuration.enable_public_projects_page = false
+    Rails.configuration.Users.AnonymousUserToken = nil
+    Rails.configuration.Workbench.EnablePublicProjectsPage = false
     get :public
     assert_response :redirect
     assert_match /\/users\/welcome/, @response.redirect_url
@@ -299,8 +299,8 @@ class ProjectsControllerTest < ActionController::TestCase
   end
 
   test "visit public projects page when anon config is enabled and public projects page is disabled and expect login page" do
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
-    Rails.configuration.enable_public_projects_page = false
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Workbench.EnablePublicProjectsPage = false
     get :index
     assert_response :redirect
     assert_match /\/users\/welcome/, @response.redirect_url
@@ -308,7 +308,7 @@ class ProjectsControllerTest < ActionController::TestCase
   end
 
   test "visit public projects page when anon config is not enabled and public projects page is enabled and expect login page" do
-    Rails.configuration.enable_public_projects_page = true
+    Rails.configuration.Workbench.EnablePublicProjectsPage = true
     get :index
     assert_response :redirect
     assert_match /\/users\/welcome/, @response.redirect_url
@@ -501,7 +501,7 @@ EOT
   end
 
   test "visit a public project and verify the public projects page link exists" do
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
     uuid = api_fixture('groups')['anonymously_accessible_project']['uuid']
     get :show, params: {id: uuid}
     project = assigns(:object)
index 57b8705963d752e41123fcb094f1f4505a8a3862..742fe6b13e1c3ed5b0a4a7ff7e720bc8f6874565 100644 (file)
@@ -14,7 +14,7 @@ class UsersControllerTest < ActionController::TestCase
   test "ignore previously valid token (for deleted user), don't crash" do
     get :activity, params: {}, session: session_for(:valid_token_deleted_user)
     assert_response :redirect
-    assert_match /^#{Rails.configuration.arvados_login_base}/, @response.redirect_url
+    assert_match /^#{Rails.configuration.Services.Controller.ExternalURL}\/login/, @response.redirect_url
     assert_nil assigns(:my_jobs)
     assert_nil assigns(:my_ssh_keys)
   end
@@ -24,7 +24,7 @@ class UsersControllerTest < ActionController::TestCase
       id: api_fixture('users')['active']['uuid']
     }, session: session_for(:expired_trustedclient)
     assert_response :redirect
-    assert_match /^#{Rails.configuration.arvados_login_base}/, @response.redirect_url
+    assert_match /^#{Rails.configuration.Services.Controller.ExternalURL}\/login/, @response.redirect_url
     assert_nil assigns(:my_jobs)
     assert_nil assigns(:my_ssh_keys)
   end
index 8d772b087f54f02d0f2172d6820bec3823d36baf..c414f8a7ad76e4a5c3844c0ce61a088fe5fcd403 100644 (file)
@@ -14,7 +14,7 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest
 
   setup do
     need_javascript
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
   end
 
   PUBLIC_PROJECT = "/projects/#{api_fixture('groups')['anonymously_accessible_project']['uuid']}"
@@ -35,7 +35,7 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest
         assert_text 'indicate that you have read and accepted the user agreement'
       end
       within('.navbar-fixed-top') do
-        assert_selector 'a', text: Rails.configuration.site_name.downcase
+        assert_selector 'a', text: Rails.configuration.Workbench.SiteName.downcase
         assert(page.has_link?("notifications-menu"), 'no user menu')
         page.find("#notifications-menu").click
         within('.dropdown-menu') do
@@ -45,8 +45,8 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest
     else  # anonymous
       assert_text 'Unrestricted public data'
       within('.navbar-fixed-top') do
-        assert_text Rails.configuration.site_name.downcase
-        assert_no_selector 'a', text: Rails.configuration.site_name.downcase
+        assert_text Rails.configuration.Workbench.SiteName.downcase
+        assert_no_selector 'a', text: Rails.configuration.Workbench.SiteName.downcase
         assert_selector 'a', text: 'Log in'
         assert_selector 'a', text: 'Browse public projects'
       end
index 51c3720985a85e0fbfd3ebd60ff1473134af78ab..0909157a9b1cb3f0ef7a2a6546b5d7634b8f5ca2 100644 (file)
@@ -16,13 +16,13 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
   end
 
   def verify_homepage user, invited, has_profile
-    profile_config = Rails.configuration.user_profile_form_fields
+    profile_config = Rails.configuration.Workbench.UserProfileFormFields
 
     if !user
       assert page.has_text?('Please log in'), 'Not found text - Please log in'
       assert page.has_text?('The "Log in" button below will show you a Google sign-in page'), 'Not found text - google sign in page'
       assert page.has_no_text?('My projects'), 'Found text - My projects'
-      assert page.has_link?("Log in to #{Rails.configuration.site_name}"), 'Not found text - log in to'
+      assert page.has_link?("Log in to #{Rails.configuration.Workbench.SiteName}"), 'Not found text - log in to'
     elsif user['is_active']
       if profile_config && !has_profile
         assert page.has_text?('Save profile'), 'No text - Save profile'
@@ -42,12 +42,12 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
 
     within('.navbar-fixed-top') do
       if !user
-        assert_text Rails.configuration.site_name.downcase
-        assert_no_selector 'a', text: Rails.configuration.site_name.downcase
+        assert_text Rails.configuration.Workbench.SiteName.downcase
+        assert_no_selector 'a', text: Rails.configuration.Workbench.SiteName.downcase
         assert page.has_link?('Log in'), 'Not found link - Log in'
       else
         # my account menu
-        assert_selector 'a', text: Rails.configuration.site_name.downcase
+        assert_selector 'a', text: Rails.configuration.Workbench.SiteName.downcase
         assert(page.has_link?("notifications-menu"), 'no user menu')
         page.find("#notifications-menu").click
         within('.dropdown-menu') do
@@ -152,7 +152,7 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
     ['https://wb2.example.org/', true],
   ].each do |wb2_url_config, wb2_menu_appear|
     test "workbench2_url=#{wb2_url_config} should#{wb2_menu_appear ? '' : ' not'} show WB2 menu" do
-      Rails.configuration.workbench2_url = wb2_url_config
+      Rails.configuration.Services.Workbench2.ExternalURL = URI(wb2_url_config)
       assert_equal wb2_menu_appear, ConfigValidators::validate_wb2_url_config()
 
       visit page_with_token('active')
@@ -170,7 +170,7 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
     ['active_with_prefs_profile_no_getting_started_shown', false],
   ].each do |token, getting_started_shown|
     test "getting started help menu item #{getting_started_shown}" do
-      Rails.configuration.enable_getting_started_popup = true
+      Rails.configuration.Workbench.EnableGettingStartedPopup = true
 
       visit page_with_token(token)
 
@@ -213,7 +213,7 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
   end
 
   test "test arvados_public_data_doc_url config unset" do
-    Rails.configuration.arvados_public_data_doc_url = false
+    Rails.configuration.Workbench.ArvadosPublicDataDocURL = false
 
     visit page_with_token('active')
     within '.navbar-fixed-top' do
@@ -231,7 +231,7 @@ class ApplicationLayoutTest < ActionDispatch::IntegrationTest
   end
 
   test "no SSH public key notification when shell_in_a_box_url is configured" do
-    Rails.configuration.shell_in_a_box_url = 'example.com'
+    Rails.configuration.Services.WebShell.ExternalURL = URI('http://example.com')
     visit page_with_token('job_reader')
     click_link 'notifications-menu'
     assert_no_selector 'a', text:'Click here to set up an SSH public key for use with Arvados.'
index 407458b62bd4c3557e8c21e20b4bde201cfda1e3..b19c00dae99c9b8839ff904dec648e45833149e2 100644 (file)
@@ -42,7 +42,7 @@ class DownloadTest < ActionDispatch::IntegrationTest
     end
 
     test "preview anonymous content from keep-web by #{id_type}" do
-      Rails.configuration.anonymous_user_token =
+      Rails.configuration.Users.AnonymousUserToken =
         api_fixture('api_client_authorizations')['anonymous']['api_token']
       uuid_or_pdh =
         api_fixture('collections')['public_text_file'][id_type]
@@ -55,7 +55,7 @@ class DownloadTest < ActionDispatch::IntegrationTest
     end
 
     test "download anonymous content from keep-web by #{id_type}" do
-      Rails.configuration.anonymous_user_token =
+      Rails.configuration.Users.AnonymousUserToken =
         api_fixture('api_client_authorizations')['anonymous']['api_token']
       uuid_or_pdh =
         api_fixture('collections')['public_text_file'][id_type]
index 81d4bbbaa1735dd98ce2ccbb7a54b25b8675a43b..86d5902ff5b1ef11ec62d6a0c8219225d5b71c45 100644 (file)
@@ -72,15 +72,15 @@ class ErrorsTest < ActionDispatch::IntegrationTest
 
   test "API error page has Report problem button" do
     # point to a bad api server url to generate fiddlesticks error
-    original_arvados_v1_base = Rails.configuration.arvados_v1_base
-    Rails.configuration.arvados_v1_base = "https://[::1]:1/"
+    original_arvados_v1_base = Rails.configuration.Services.Controller.ExternalURL
+    Rails.configuration.Services.Controller.ExternalURL = URI("https://[::1]:1/")
 
     visit page_with_token("active")
 
     assert_text 'fiddlesticks'
 
     # reset api server base config to let the popup rendering to work
-    Rails.configuration.arvados_v1_base = original_arvados_v1_base
+    Rails.configuration.Services.Controller.ExternalURL = original_arvados_v1_base
 
     click_link 'Report problem'
 
index bf48d88cf3f754455d9902727c3b91f4806672d1..b54a31380ce93f9cbb0ae726a47a636e4ed57981 100644 (file)
@@ -44,7 +44,7 @@ class JobsTest < ActionDispatch::IntegrationTest
     use_keep_web_config
 
     # This config will be restored during teardown by ../test_helper.rb:
-    Rails.configuration.log_viewer_max_bytes = 100
+    Rails.configuration.Workbench.LogViewerMaxBytes = 100
 
     logdata = fakepipe_with_log_data.read
     job_uuid = api_fixture('jobs')['running']['uuid']
index 9c22f5a7721a7b388111ecdac8133a7a0e9302e7..624ae13e476efff0234baf3f1078b7ce91074d92 100644 (file)
@@ -39,7 +39,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.Services.Controller.ExternalURL = URI(stub)
 
     find("#notifications-menu").click
     assert_text "active-user@arvados.local"
@@ -59,7 +59,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.Services.Controller.ExternalURL = URI(stub)
 
     find("#notifications-menu").click
     assert_text "project-viewer@arvados.local"
@@ -79,7 +79,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.Services.Controller.ExternalURL = URI(stub)
 
     find("#notifications-menu").click
     assert_text "active-user@arvados.local"
@@ -99,7 +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.Services.Controller.ExternalURL = URI(stub)
 
     find("#notifications-menu").click
     assert_text "active-user@arvados.local"
@@ -123,7 +123,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.Services.Controller.ExternalURL = URI(stub)
 
     find("#notifications-menu").click
     assert_text "inactive-uninvited-user@arvados.local"
@@ -148,7 +148,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.Services.Controller.ExternalURL = URI(stub)
 
     find("#notifications-menu").click
     assert_text "admin@arvados.local"
index ac78344ea5b398566289c531f21400e3f5abc76b..279d851017f0a9270d970a39e5ce030659b30075 100644 (file)
@@ -93,7 +93,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest
   end
 
   test "projects not publicly sharable when anonymous browsing disabled" do
-    Rails.configuration.anonymous_user_token = false
+    Rails.configuration.Users.AnonymousUserToken = ""
     open_groups_sharing
     # Check for a group we do expect first, to make sure the modal's loaded.
     assert_selector(".modal-container .selectable",
@@ -103,7 +103,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest
   end
 
   test "projects publicly sharable when anonymous browsing enabled" do
-    Rails.configuration.anonymous_user_token = "testonlytoken"
+    Rails.configuration.Users.AnonymousUserToken = "testonlytoken"
     open_groups_sharing
     assert_selector(".modal-container .selectable",
                     text: group_name("anonymous_group"))
@@ -539,19 +539,19 @@ class ProjectsTest < ActionDispatch::IntegrationTest
   end
 
   test "error while loading tab" do
-    original_arvados_v1_base = Rails.configuration.arvados_v1_base
+    original_arvados_v1_base = Rails.configuration.Services.Controller.ExternalURL
 
     visit page_with_token 'active', '/projects/' + api_fixture('groups')['aproject']['uuid']
 
     # Point to a bad api server url to generate error
-    Rails.configuration.arvados_v1_base = "https://[::1]:1/"
+    Rails.configuration.Services.Controller.ExternalURL = "https://[::1]:1/"
     click_link 'Other objects'
     within '#Other_objects' do
       # Error
       assert_selector('a', text: 'Reload tab')
 
       # Now point back to the orig api server and reload tab
-      Rails.configuration.arvados_v1_base = original_arvados_v1_base
+      Rails.configuration.Services.Controller.ExternalURL = original_arvados_v1_base
       click_link 'Reload tab'
       assert_no_selector('a', text: 'Reload tab')
       assert_selector('button', text: 'Selection')
index dc898689e593b6992707ee6bcbb141f9e3329d5c..d2c4372bce0de489954afa620fabd861f1b42948 100644 (file)
@@ -7,11 +7,11 @@ require 'integration_helper'
 class ReportIssueTest < ActionDispatch::IntegrationTest
   setup do
     need_javascript
-    @user_profile_form_fields = Rails.configuration.user_profile_form_fields
+    @user_profile_form_fields = Rails.configuration.Workbench.UserProfileFormFields
   end
 
   teardown do
-    Rails.configuration.user_profile_form_fields = @user_profile_form_fields
+    Rails.configuration.Workbench.UserProfileFormFields = @user_profile_form_fields
   end
 
   # test version info and report issue from help menu
index e4d9894e5fb4e902f90dffc4019e2a771722cd37..655cddf4e4f32f74a587c350b498d5c5b8b62905 100644 (file)
@@ -7,15 +7,15 @@ require 'integration_helper'
 class UserProfileTest < ActionDispatch::IntegrationTest
   setup do
     need_javascript
-    @user_profile_form_fields = Rails.configuration.user_profile_form_fields
+    @user_profile_form_fields = Rails.configuration.Workbench.UserProfileFormFields
   end
 
   teardown do
-    Rails.configuration.user_profile_form_fields = @user_profile_form_fields
+    Rails.configuration.Workbench.UserProfileFormFields = @user_profile_form_fields
   end
 
   def verify_homepage_with_profile user, invited, has_profile
-    profile_config = Rails.configuration.user_profile_form_fields
+    profile_config = Rails.configuration.Workbench.UserProfileFormFields
 
     if !user
       assert_text('Please log in')
@@ -96,10 +96,10 @@ class UserProfileTest < ActionDispatch::IntegrationTest
     assert_text('Save profile')
 
     # This time fill in required field and then save. Expect to go to requested page after that.
-    profile_message = Rails.configuration.user_profile_form_message
+    profile_message = Rails.configuration.Workbench.UserProfileFormMessage
     required_field_title = ''
     required_field_key = ''
-    profile_config = Rails.configuration.user_profile_form_fields
+    profile_config = Rails.configuration.Workbench.UserProfileFormFields
     profile_config.each do |entry|
       if entry['required']
         required_field_key = entry['key']
@@ -142,11 +142,11 @@ class UserProfileTest < ActionDispatch::IntegrationTest
     [true, false].each do |profile_required|
       test "visit #{token} home page when profile is #{'not ' if !profile_required}configured" do
         if !profile_required
-          Rails.configuration.user_profile_form_fields = false
+          Rails.configuration.Workbench.UserProfileFormFields = false
         else
           # Our test config enabled profile by default. So, no need to update config
         end
-        Rails.configuration.enable_getting_started_popup = true
+        Rails.configuration.Workbench.EnableGettingStartedPopup = true
 
         if !token
           visit ('/')
index 6a0e46e26aea5b6455fd400ac73d55596ab5895b..562dc7d1f41cb885aee778aace35ae81d9e2d11f 100644 (file)
@@ -78,7 +78,7 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest
 
   test "pipeline notification shown even though public pipelines exist" do
     skip "created_by doesn't work that way"
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
     visit page_with_token 'job_reader'
     click_link 'notifications-menu'
     assert_selector 'a', text: 'Click here to learn how to run an Arvados Crunch pipeline'
@@ -89,7 +89,7 @@ class UserSettingsMenuTest < ActionDispatch::IntegrationTest
     ['active'],
   ].each do |user, *expect|
     test "user settings menu for #{user} with notifications #{expect.inspect}" do
-      Rails.configuration.anonymous_user_token = false
+      Rails.configuration.Users.AnonymousUserToken = ""
       visit page_with_token(user)
       click_link 'notifications-menu'
       if expect.include? :ssh
index e377da3237ea69b820ece1125ee58d11cda4d4c4..a79220a8870095cb70315f088dab5ca7bb5c4743 100644 (file)
@@ -215,7 +215,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
     visit page_with_token("active", "/jobs/#{job['uuid']}\#Log")
 
     # Expect "all" historic log records because we have less than
-    # default Rails.configuration.running_job_log_records_to_fetch count
+    # default Rails.configuration.Workbench.RunningJobLogRecordsToFetch
     assert_text 'Historic log message'
 
     # Create new log record and expect it to show up in log tab
@@ -228,7 +228,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
 
   test "test running job with too many previous log records" do
     max = 5
-    Rails.configuration.running_job_log_records_to_fetch = max
+    Rails.configuration.Workbench.RunningJobLogRecordsToFetch = max
     job = api_fixture("jobs")['running']
 
     # Create max+1 log records
index e5cc6e4dc050d47bfa2d6220a4ec02528ef7aa05..b58d59a82ae414012935543d21bf9ec211274f01 100644 (file)
@@ -258,7 +258,7 @@ class WorkUnitsTest < ActionDispatch::IntegrationTest
       if token
         visit page_with_token token, "/#{type}/#{obj['uuid']}"
       else
-        Rails.configuration.anonymous_user_token =
+        Rails.configuration.Users.AnonymousUserToken =
           api_fixture("api_client_authorizations", "anonymous", "api_token")
         visit "/#{type}/#{obj['uuid']}"
       end
index 9337daf4eed8c1d90d31cb9537af8f5f50a4ff0c..34ee1f479a6a2a9a9eacd8402d79dd343bbaf08a 100644 (file)
@@ -164,8 +164,8 @@ module KeepWebConfig
   def use_keep_web_config
     @kwport = getport 'keep-web-ssl'
     @kwdport = getport 'keep-web-dl-ssl'
-    Rails.configuration.keep_web_url = "https://localhost:#{@kwport}/c=%{uuid_or_pdh}"
-    Rails.configuration.keep_web_download_url = "https://localhost:#{@kwdport}/c=%{uuid_or_pdh}"
+    Rails.configuration.Services.WebDAV.ExternalURL = URI("https://localhost:#{@kwport}")
+    Rails.configuration.Services.WebDAVDownload.ExternalURL = URI("https://localhost:#{@kwdport}")
   end
 end
 
index 44b9ad9e3e93d483c27cfb97aff5ad10b8b585b4..3feef945d1d6105301cf7fe4da32ba2ef2371115 100644 (file)
@@ -24,7 +24,7 @@ class BigCollectionTest < ActiveSupport::TestCase
   # didn't make a significant difference.
   [true].each do |compress|
     test "crud cycle for collection with big manifest (compress=#{compress})" do
-      Rails.configuration.api_response_compression = compress
+      Rails.configuration.Workbench.APIResponseCompression = compress
       Thread.current[:arvados_api_client] = nil
       crudtest
     end
index a71d0b46141fd74f2497e01447506831830d83d6..6d8474edae1935981ecf7957030c795bbc4c78ad 100644 (file)
@@ -61,11 +61,11 @@ class ActiveSupport::TestCase
   end
 
   def self.reset_application_config
-    $application_config.each do |k,v|
-      if k.match /^[^.]*$/
-        Rails.configuration.send (k + '='), v
-      end
-    end
+    # Restore configuration settings changed during tests
+    ConfigLoader.copy_into_config $arvados_config, Rails.configuration
+    ConfigLoader.copy_into_config $remaining_config, Rails.configuration
+    Rails.configuration.Services.Controller.ExternalURL = "https://#{ENV['ARVADOS_API_HOST']}"
+    Rails.configuration.TLS.Insecure = true
   end
 end
 
@@ -207,9 +207,6 @@ class ApiServerForTests
     end
 
     run_test_server
-    $application_config['arvados_login_base'] = "https://#{ENV['ARVADOS_API_HOST']}/login"
-    $application_config['arvados_v1_base'] = "https://#{ENV['ARVADOS_API_HOST']}/arvados/v1"
-    $application_config['arvados_insecure_host'] = true
     ActiveSupport::TestCase.reset_application_config
 
     @@server_is_running = true
index fa9a69d38097041b05c988eef8691a79d2182df3..a73e506d14ae6f7a4983da03be5e4105920cca5e 100644 (file)
@@ -16,7 +16,7 @@ class UserTest < ActiveSupport::TestCase
 
   test "User.current doesn't return anonymous user when using invalid token" do
     # Set up anonymous user token
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
     # First, try with a valid user
     use_token :active
     u = User.current
index eaf65c578dbfb3afbfbdbe3d39081ee25cdee778..4e5ad396789eb57c582101ba868a88e1a854d4d8 100644 (file)
@@ -9,7 +9,7 @@ class WorkUnitTest < ActiveSupport::TestCase
   reset_api_fixtures :after_each_test, false
 
   setup do
-    Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+    Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
   end
 
   [
index 31295c0c512b2eb437e3737d9c1ab89c661078ec..6ed502be9bb69f26e9ca7afb51e1f33100bbdc90 100644 (file)
@@ -626,7 +626,7 @@ Clusters:
     Mail:
       MailchimpAPIKey: ""
       MailchimpListID: ""
-      SendUserSetupNotificationEmail: ""
+      SendUserSetupNotificationEmail: true
       IssueReporterEmailFrom: ""
       IssueReporterEmailTo: ""
       SupportEmailAddress: ""
@@ -664,15 +664,14 @@ Clusters:
       ArvadosDocsite: https://doc.arvados.org
       ArvadosPublicDataDocURL: https://playground.arvados.org/projects/public
       ShowUserAgreementInline: false
-      SecretToken: ""
       SecretKeyBase: ""
       RepositoryCache: /var/www/arvados-workbench/current/tmp/git
       UserProfileFormFields:
-        SAMPLE:
-          Type: text
-          FormFieldTitle: ""
-          FormFieldDescription: ""
-          Required: true
+        SAMPLE:
+          Type: text
+            FormFieldTitle: ""
+            FormFieldDescription: ""
+            Required: true
       UserProfileFormMessage: 'Welcome to Arvados. All <span style="color:red">required fields</span> must be completed before you can proceed.'
 
       # Mimetypes of applications for which the view icon
index d5888d0abc62bb398aeec91202baa29e724ca3bc..e8acaa94f4fe1b0d0ad9f546a43f0aceb5c2c72e 100644 (file)
@@ -1,7 +1,7 @@
 PATH
   remote: .
   specs:
-    arvados-login-sync (1.4.0.20190627174113)
+    arvados-login-sync (1.4.0.20190627191839)
       arvados (~> 1.3.0, >= 1.3.0)
 
 GEM