1 # frozen_string_literal: true
 
   6   class DataControllerTest < ActionDispatch::IntegrationTest
 
   8     # test all routes which lead to this controller
 
  11         { :path => "/issues/1/reporters", :method => :get },
 
  12         { :controller => "issues/reporters", :action => "index", :issue_id => "1" }
 
  16     def test_index_missing_issue_as_moderator
 
  17       session_for(create(:moderator_user))
 
  18       get issue_reporters_path(999111)
 
  20       assert_redirected_to :controller => "/errors", :action => :not_found
 
  23     def test_index_missing_issue_as_administrator
 
  24       session_for(create(:administrator_user))
 
  25       get issue_reporters_path(999111)
 
  27       assert_redirected_to :controller => "/errors", :action => :not_found
 
  30     def test_index_assigned_to_moderator_as_unauthorized
 
  31       issue = create(:issue, :assigned_role => "moderator")
 
  33       get issue_reporters_path(issue)
 
  35       assert_redirected_to login_path(:referer => issue_reporters_path(issue))
 
  38     def test_index_assigned_to_moderator_as_regular_user
 
  39       issue = create(:issue, :assigned_role => "moderator")
 
  41       session_for(create(:user))
 
  42       get issue_reporters_path(issue)
 
  44       assert_redirected_to :controller => "/errors", :action => :forbidden
 
  47     def test_index_assigned_to_moderator_as_administrator
 
  48       issue = create(:issue, :assigned_role => "moderator")
 
  50       session_for(create(:administrator_user))
 
  51       get issue_reporters_path(issue)
 
  53       assert_redirected_to :controller => "/errors", :action => :not_found
 
  56     def test_index_assigned_to_moderator_as_moderator
 
  57       issue = create(:issue, :assigned_role => "moderator")
 
  59       session_for(create(:moderator_user))
 
  60       get issue_reporters_path(issue)
 
  62       assert_response :success
 
  65     def test_index_assigned_to_administrator_as_unauthorized
 
  66       issue = create(:issue, :assigned_role => "administrator")
 
  68       get issue_reporters_path(issue)
 
  70       assert_redirected_to login_path(:referer => issue_reporters_path(issue))
 
  73     def test_index_assigned_to_administrator_as_regular_user
 
  74       issue = create(:issue, :assigned_role => "administrator")
 
  76       session_for(create(:user))
 
  77       get issue_reporters_path(issue)
 
  79       assert_redirected_to :controller => "/errors", :action => :forbidden
 
  82     def test_index_assigned_to_administrator_as_moderator
 
  83       issue = create(:issue, :assigned_role => "administrator")
 
  85       session_for(create(:moderator_user))
 
  86       get issue_reporters_path(issue)
 
  88       assert_redirected_to :controller => "/errors", :action => :not_found
 
  91     def test_index_assigned_to_administrator_as_administrator
 
  92       issue = create(:issue, :assigned_role => "administrator")
 
  94       session_for(create(:administrator_user))
 
  95       get issue_reporters_path(issue)
 
  97       assert_response :success