Merge branch 'master' into 4951-request-vm
[arvados.git] / apps / workbench / test / controllers / application_controller_test.rb
index 30da596266765f6153e8b0e9ca4d4880a49df45a..843cf88a3d8185d4f96ddd189c61ef48adf28ef0 100644 (file)
@@ -327,36 +327,39 @@ class ApplicationControllerTest < ActionController::TestCase
   end
 
   [
-    ['collections', false, api_fixture('collections')['user_agreement_in_anonymously_accessible_project']],
-    ['jobs', false, api_fixture('jobs')['running_job_in_publicly_accessible_project']],
-    ['pipeline_instances', false, api_fixture('pipeline_instances')['pipeline_in_publicly_accessible_project']],
-    ['pipeline_templates', false, api_fixture('pipeline_templates')['pipeline_template_in_publicly_accessible_project']],
-    ['projects', false, api_fixture('groups')['anonymously_accessible_project']],
-  ].each do |controller, use_config, fixture|
-    test "#{controller} show method with anonymous config enabled #{use_config}" do
-      if use_config
+    [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']],
+    [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
 
-      case controller
-      when 'collections'
-        @controller = CollectionsController.new
-      when 'jobs'
-        @controller = JobsController.new
-      when 'pipeline_instances'
-        @controller = PipelineInstancesController.new
-      when 'pipeline_templates'
-        @controller = PipelineTemplatesController.new
-      when 'projects'
-        @controller = ProjectsController.new
-      end
+      @controller = controller
 
       get(:show, {id: fixture['uuid']})
 
-      assert_response :redirect
-      assert_match /welcome/, @response.redirect_url
+      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_response :redirect
+        assert_match /\/users\/welcome/, @response.redirect_url
+      end
     end
   end
 end