]> git.openstreetmap.org Git - rails.git/blob - test/controllers/issues/reporters_controller_test.rb
Merge remote-tracking branch 'upstream/pull/5787'
[rails.git] / test / controllers / issues / reporters_controller_test.rb
1 require "test_helper"
2
3 module Issues
4   class DataControllerTest < ActionDispatch::IntegrationTest
5     ##
6     # test all routes which lead to this controller
7     def test_routes
8       assert_routing(
9         { :path => "/issues/1/reporters", :method => :get },
10         { :controller => "issues/reporters", :action => "index", :issue_id => "1" }
11       )
12     end
13
14     def test_index_missing_issue_as_moderator
15       session_for(create(:moderator_user))
16       get issue_reporters_path(999111)
17
18       assert_redirected_to :controller => "/errors", :action => :not_found
19     end
20
21     def test_index_missing_issue_as_administrator
22       session_for(create(:administrator_user))
23       get issue_reporters_path(999111)
24
25       assert_redirected_to :controller => "/errors", :action => :not_found
26     end
27
28     def test_index_assigned_to_moderator_as_unauthorized
29       issue = create(:issue, :assigned_role => "moderator")
30
31       get issue_reporters_path(issue)
32
33       assert_redirected_to login_path(:referer => issue_reporters_path(issue))
34     end
35
36     def test_index_assigned_to_moderator_as_regular_user
37       issue = create(:issue, :assigned_role => "moderator")
38
39       session_for(create(:user))
40       get issue_reporters_path(issue)
41
42       assert_redirected_to :controller => "/errors", :action => :forbidden
43     end
44
45     def test_index_assigned_to_moderator_as_administrator
46       issue = create(:issue, :assigned_role => "moderator")
47
48       session_for(create(:administrator_user))
49       get issue_reporters_path(issue)
50
51       assert_redirected_to :controller => "/errors", :action => :not_found
52     end
53
54     def test_index_assigned_to_moderator_as_moderator
55       issue = create(:issue, :assigned_role => "moderator")
56
57       session_for(create(:moderator_user))
58       get issue_reporters_path(issue)
59
60       assert_response :success
61     end
62
63     def test_index_assigned_to_administrator_as_unauthorized
64       issue = create(:issue, :assigned_role => "administrator")
65
66       get issue_reporters_path(issue)
67
68       assert_redirected_to login_path(:referer => issue_reporters_path(issue))
69     end
70
71     def test_index_assigned_to_administrator_as_regular_user
72       issue = create(:issue, :assigned_role => "administrator")
73
74       session_for(create(:user))
75       get issue_reporters_path(issue)
76
77       assert_redirected_to :controller => "/errors", :action => :forbidden
78     end
79
80     def test_index_assigned_to_administrator_as_moderator
81       issue = create(:issue, :assigned_role => "administrator")
82
83       session_for(create(:moderator_user))
84       get issue_reporters_path(issue)
85
86       assert_redirected_to :controller => "/errors", :action => :not_found
87     end
88
89     def test_index_assigned_to_administrator_as_administrator
90       issue = create(:issue, :assigned_role => "administrator")
91
92       session_for(create(:administrator_user))
93       get issue_reporters_path(issue)
94
95       assert_response :success
96     end
97   end
98 end