4   class DataControllerTest < ActionDispatch::IntegrationTest
 
   6     # test all routes which lead to this controller
 
   9         { :path => "/issues/1/reporters", :method => :get },
 
  10         { :controller => "issues/reporters", :action => "index", :issue_id => "1" }
 
  14     def test_index_missing_issue_as_moderator
 
  15       session_for(create(:moderator_user))
 
  16       get issue_reporters_path(999111)
 
  18       assert_redirected_to :controller => "/errors", :action => :not_found
 
  21     def test_index_missing_issue_as_administrator
 
  22       session_for(create(:administrator_user))
 
  23       get issue_reporters_path(999111)
 
  25       assert_redirected_to :controller => "/errors", :action => :not_found
 
  28     def test_index_assigned_to_moderator_as_unauthorized
 
  29       issue = create(:issue, :assigned_role => "moderator")
 
  31       get issue_reporters_path(issue)
 
  33       assert_redirected_to login_path(:referer => issue_reporters_path(issue))
 
  36     def test_index_assigned_to_moderator_as_regular_user
 
  37       issue = create(:issue, :assigned_role => "moderator")
 
  39       session_for(create(:user))
 
  40       get issue_reporters_path(issue)
 
  42       assert_redirected_to :controller => "/errors", :action => :forbidden
 
  45     def test_index_assigned_to_moderator_as_administrator
 
  46       issue = create(:issue, :assigned_role => "moderator")
 
  48       session_for(create(:administrator_user))
 
  49       get issue_reporters_path(issue)
 
  51       assert_redirected_to :controller => "/errors", :action => :not_found
 
  54     def test_index_assigned_to_moderator_as_moderator
 
  55       issue = create(:issue, :assigned_role => "moderator")
 
  57       session_for(create(:moderator_user))
 
  58       get issue_reporters_path(issue)
 
  60       assert_response :success
 
  63     def test_index_assigned_to_administrator_as_unauthorized
 
  64       issue = create(:issue, :assigned_role => "administrator")
 
  66       get issue_reporters_path(issue)
 
  68       assert_redirected_to login_path(:referer => issue_reporters_path(issue))
 
  71     def test_index_assigned_to_administrator_as_regular_user
 
  72       issue = create(:issue, :assigned_role => "administrator")
 
  74       session_for(create(:user))
 
  75       get issue_reporters_path(issue)
 
  77       assert_redirected_to :controller => "/errors", :action => :forbidden
 
  80     def test_index_assigned_to_administrator_as_moderator
 
  81       issue = create(:issue, :assigned_role => "administrator")
 
  83       session_for(create(:moderator_user))
 
  84       get issue_reporters_path(issue)
 
  86       assert_redirected_to :controller => "/errors", :action => :not_found
 
  89     def test_index_assigned_to_administrator_as_administrator
 
  90       issue = create(:issue, :assigned_role => "administrator")
 
  92       session_for(create(:administrator_user))
 
  93       get issue_reporters_path(issue)
 
  95       assert_response :success