openstreetmap-website/test/controllers/issues/reporters_controller_test.rb
2025-03-07 17:49:39 +03:00

98 lines
2.9 KiB
Ruby

require "test_helper"
module Issues
class DataControllerTest < ActionDispatch::IntegrationTest
##
# test all routes which lead to this controller
def test_routes
assert_routing(
{ :path => "/issues/1/reporters", :method => :get },
{ :controller => "issues/reporters", :action => "index", :issue_id => "1" }
)
end
def test_index_missing_issue_as_moderator
session_for(create(:moderator_user))
get issue_reporters_path(999111)
assert_redirected_to :controller => "/errors", :action => :not_found
end
def test_index_missing_issue_as_administrator
session_for(create(:administrator_user))
get issue_reporters_path(999111)
assert_redirected_to :controller => "/errors", :action => :not_found
end
def test_index_assigned_to_moderator_as_unauthorized
issue = create(:issue, :assigned_role => "moderator")
get issue_reporters_path(issue)
assert_redirected_to login_path(:referer => issue_reporters_path(issue))
end
def test_index_assigned_to_moderator_as_regular_user
issue = create(:issue, :assigned_role => "moderator")
session_for(create(:user))
get issue_reporters_path(issue)
assert_redirected_to :controller => "/errors", :action => :forbidden
end
def test_index_assigned_to_moderator_as_administrator
issue = create(:issue, :assigned_role => "moderator")
session_for(create(:administrator_user))
get issue_reporters_path(issue)
assert_redirected_to :controller => "/errors", :action => :not_found
end
def test_index_assigned_to_moderator_as_moderator
issue = create(:issue, :assigned_role => "moderator")
session_for(create(:moderator_user))
get issue_reporters_path(issue)
assert_response :success
end
def test_index_assigned_to_administrator_as_unauthorized
issue = create(:issue, :assigned_role => "administrator")
get issue_reporters_path(issue)
assert_redirected_to login_path(:referer => issue_reporters_path(issue))
end
def test_index_assigned_to_administrator_as_regular_user
issue = create(:issue, :assigned_role => "administrator")
session_for(create(:user))
get issue_reporters_path(issue)
assert_redirected_to :controller => "/errors", :action => :forbidden
end
def test_index_assigned_to_administrator_as_moderator
issue = create(:issue, :assigned_role => "administrator")
session_for(create(:moderator_user))
get issue_reporters_path(issue)
assert_redirected_to :controller => "/errors", :action => :not_found
end
def test_index_assigned_to_administrator_as_administrator
issue = create(:issue, :assigned_role => "administrator")
session_for(create(:administrator_user))
get issue_reporters_path(issue)
assert_response :success
end
end
end