Merge branch 'master' into 4951-request-vm
[arvados.git] / apps / workbench / test / controllers / application_controller_test.rb
index f48bdb69eb5f3dda38c5751acc9085fd36af2e86..843cf88a3d8185d4f96ddd189c61ef48adf28ef0 100644 (file)
@@ -328,21 +328,37 @@ class ApplicationControllerTest < ActionController::TestCase
 
   [
     [CollectionsController.new, api_fixture('collections')['user_agreement_in_anonymously_accessible_project']],
+    [CollectionsController.new, api_fixture('collections')['user_agreement_in_anonymously_accessible_project'], false],
     [JobsController.new, api_fixture('jobs')['running_job_in_publicly_accessible_project']],
+    [JobsController.new, api_fixture('jobs')['running_job_in_publicly_accessible_project'], false],
     [PipelineInstancesController.new, api_fixture('pipeline_instances')['pipeline_in_publicly_accessible_project']],
+    [PipelineInstancesController.new, api_fixture('pipeline_instances')['pipeline_in_publicly_accessible_project'], false],
     [PipelineTemplatesController.new, api_fixture('pipeline_templates')['pipeline_template_in_publicly_accessible_project']],
+    [PipelineTemplatesController.new, api_fixture('pipeline_templates')['pipeline_template_in_publicly_accessible_project'], false],
     [ProjectsController.new, api_fixture('groups')['anonymously_accessible_project']],
-  ].each do |controller, fixture|
+    [ProjectsController.new, api_fixture('groups')['anonymously_accessible_project'], false],
+  ].each do |controller, fixture, anon_config=true|
     test "#{controller} show method with anonymous config enabled" do
+      if anon_config
+        Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+      else
+        Rails.configuration.anonymous_user_token = false
+      end
+
       @controller = controller
 
       get(:show, {id: fixture['uuid']})
 
-      assert_response 200
-      if controller.class == JobsController
-        assert_includes @response.inspect, fixture['script']
+      if anon_config
+        assert_response 200
+        if controller.class == JobsController
+          assert_includes @response.inspect, fixture['script']
+        else
+          assert_includes @response.inspect, fixture['name']
+        end
       else
-        assert_includes @response.inspect, fixture['name']
+        assert_response :redirect
+        assert_match /\/users\/welcome/, @response.redirect_url
       end
     end
   end