98 lines
2.9 KiB
Ruby
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
|