]> git.openstreetmap.org Git - rails.git/blob - test/system/changeset_comments_test.rb
Add frozen_string_literal comments to ruby files
[rails.git] / test / system / changeset_comments_test.rb
1 # frozen_string_literal: true
2
3 require "application_system_test_case"
4
5 class ChangesetCommentsTest < ApplicationSystemTestCase
6   test "open changeset has a still open notice" do
7     changeset = create(:changeset)
8     sign_in_as(create(:user))
9     visit changeset_path(changeset)
10
11     within_sidebar do
12       assert_no_button "Comment"
13       assert_text "Changeset still open"
14     end
15   end
16
17   test "changeset has a login notice" do
18     changeset = create(:changeset, :closed)
19     visit changeset_path(changeset)
20
21     within_sidebar do
22       assert_no_button "Subscribe"
23       assert_no_button "Comment"
24       assert_link "Log in to join the discussion", :href => login_path(:referer => changeset_path(changeset))
25     end
26   end
27
28   test "can add a comment to a changeset" do
29     changeset = create(:changeset, :closed)
30     user = create(:user)
31     sign_in_as(user)
32     visit changeset_path(changeset)
33
34     within_sidebar do
35       assert_no_content "Comment from #{user.display_name}"
36       assert_no_content "Some newly added changeset comment"
37       assert_button "Comment", :disabled => true
38
39       fill_in "text", :with => "Some newly added changeset comment"
40
41       assert_button "Comment", :disabled => false
42
43       click_on "Comment"
44
45       assert_content "Comment from #{user.display_name}"
46       assert_content "Some newly added changeset comment"
47     end
48   end
49
50   test "regular users can't hide comments" do
51     changeset = create(:changeset, :closed)
52     create(:changeset_comment, :changeset => changeset, :body => "Unwanted comment")
53     sign_in_as(create(:user))
54     visit changeset_path(changeset)
55
56     within_sidebar do
57       assert_text "Unwanted comment"
58       assert_no_button "hide"
59     end
60   end
61
62   test "moderators can hide comments" do
63     changeset = create(:changeset, :closed)
64     create(:changeset_comment, :changeset => changeset, :body => "Unwanted comment")
65
66     visit changeset_path(changeset)
67
68     within_sidebar do
69       assert_text "Unwanted comment"
70     end
71
72     sign_in_as(create(:moderator_user))
73     visit changeset_path(changeset)
74
75     within_sidebar do
76       assert_text "Unwanted comment"
77       assert_button "hide", :exact => true
78       assert_no_button "unhide", :exact => true
79
80       click_on "hide", :exact => true
81
82       assert_text "Unwanted comment"
83       assert_no_button "hide", :exact => true
84       assert_button "unhide", :exact => true
85     end
86
87     sign_out
88     visit changeset_path(changeset)
89
90     within_sidebar do
91       assert_no_text "Unwanted comment"
92     end
93   end
94
95   test "moderators can unhide comments" do
96     changeset = create(:changeset, :closed)
97     create(:changeset_comment, :changeset => changeset, :body => "Wanted comment", :visible => false)
98
99     visit changeset_path(changeset)
100
101     within_sidebar do
102       assert_no_text "Wanted comment"
103     end
104
105     sign_in_as(create(:moderator_user))
106     visit changeset_path(changeset)
107
108     within_sidebar do
109       assert_text "Wanted comment"
110       assert_no_button "hide", :exact => true
111       assert_button "unhide", :exact => true
112
113       click_on "unhide", :exact => true
114
115       assert_text "Wanted comment"
116       assert_button "hide", :exact => true
117       assert_no_button "unhide", :exact => true
118     end
119
120     sign_out
121     visit changeset_path(changeset)
122
123     within_sidebar do
124       assert_text "Wanted comment"
125     end
126   end
127
128   test "can subscribe" do
129     changeset = create(:changeset, :closed)
130     user = create(:user)
131     sign_in_as(user)
132     visit changeset_path(changeset)
133
134     within_sidebar do
135       assert_button "Subscribe"
136       assert_no_button "Unsubscribe"
137
138       click_on "Subscribe"
139
140       assert_no_button "Subscribe"
141       assert_button "Unsubscribe"
142     end
143   end
144
145   test "can't subscribe when blocked" do
146     changeset = create(:changeset, :closed)
147     user = create(:user)
148     sign_in_as(user)
149     visit changeset_path(changeset)
150     create(:user_block, :user => user)
151
152     within_sidebar do
153       assert_no_text "Your access to the API has been blocked"
154       assert_button "Subscribe"
155       assert_no_button "Unsubscribe"
156
157       click_on "Subscribe"
158
159       assert_text "Your access to the API has been blocked"
160       assert_button "Subscribe"
161       assert_no_button "Unsubscribe"
162     end
163   end
164 end