]> git.openstreetmap.org Git - rails.git/blob - test/system/element_current_version_test.rb
Add frozen_string_literal comments to ruby files
[rails.git] / test / system / element_current_version_test.rb
1 # frozen_string_literal: true
2
3 require "application_system_test_case"
4
5 class ElementCurrentVersionTest < ApplicationSystemTestCase
6   test "shows a node with one version" do
7     node = create(:node, :lat => 60, :lon => 30)
8
9     visit node_path(node)
10
11     within_sidebar do
12       assert_css "h2", :text => "Node: #{node.id}"
13       within "h4", :text => "Version #1" do
14         assert_link "1", :href => old_node_path(node, 1)
15       end
16       assert_text(/Location: 60\.\d+, 30\.\d+/)
17       assert_no_text "Deleted"
18
19       assert_link "Download XML", :href => api_node_path(node)
20       assert_link "History", :exact => true, :href => node_history_path(node)
21       assert_no_link "Unredacted History"
22     end
23   end
24
25   test "shows a way with one version" do
26     way = create(:way)
27
28     visit way_path(way)
29
30     within_sidebar do
31       assert_css "h2", :text => "Way: #{way.id}"
32       within "h4", :text => "Version #1" do
33         assert_link "1", :href => old_way_path(way, 1)
34       end
35       assert_no_text "Deleted"
36
37       assert_link "Download XML", :href => api_way_path(way)
38       assert_link "History", :exact => true, :href => way_history_path(way)
39       assert_no_link "Unredacted History"
40     end
41   end
42
43   test "shows a relation with one version" do
44     relation = create(:relation)
45
46     visit relation_path(relation)
47
48     within_sidebar do
49       assert_css "h2", :text => "Relation: #{relation.id}"
50       within "h4", :text => "Version #1" do
51         assert_link "1", :href => old_relation_path(relation, 1)
52       end
53       assert_no_text "Deleted"
54
55       assert_link "Download XML", :href => api_relation_path(relation)
56       assert_link "History", :exact => true, :href => relation_history_path(relation)
57       assert_no_link "Unredacted History"
58     end
59   end
60
61   test "shows a node with two versions" do
62     node = create(:node, :with_history, :lat => 60, :lon => 30, :version => 2)
63
64     visit node_path(node)
65
66     within_sidebar do
67       assert_css "h2", :text => "Node: #{node.id}"
68       within "h4", :text => "Version #2" do
69         assert_link "2", :href => old_node_path(node, 2)
70       end
71       assert_text(/Location: 60\.\d+, 30\.\d+/)
72       assert_no_text "Deleted"
73
74       assert_link "Download XML", :href => api_node_path(node)
75       assert_link "History", :exact => true, :href => node_history_path(node)
76       assert_no_link "Unredacted History"
77       assert_link "Version #1", :href => old_node_path(node, 1)
78       assert_link "Version #2", :href => old_node_path(node, 2)
79     end
80   end
81
82   test "shows a way with two versions" do
83     way = create(:way, :version => 2)
84
85     visit way_path(way)
86
87     within_sidebar do
88       assert_css "h2", :text => "Way: #{way.id}"
89       within "h4", :text => "Version #2" do
90         assert_link "2", :href => old_way_path(way, 2)
91       end
92       assert_no_text "Deleted"
93
94       assert_link "Download XML", :href => api_way_path(way)
95       assert_link "History", :exact => true, :href => way_history_path(way)
96       assert_no_link "Unredacted History"
97       assert_link "Version #1", :href => old_way_path(way, 1)
98       assert_link "Version #2", :href => old_way_path(way, 2)
99     end
100   end
101
102   test "shows a relation with two versions" do
103     relation = create(:relation, :version => 2)
104
105     visit relation_path(relation)
106
107     within_sidebar do
108       assert_css "h2", :text => "Relation: #{relation.id}"
109       within "h4", :text => "Version #2" do
110         assert_link "2", :href => old_relation_path(relation, 2)
111       end
112       assert_no_text "Deleted"
113
114       assert_link "Download XML", :href => api_relation_path(relation)
115       assert_link "History", :exact => true, :href => relation_history_path(relation)
116       assert_no_link "Unredacted History"
117       assert_link "Version #1", :href => old_relation_path(relation, 1)
118       assert_link "Version #2", :href => old_relation_path(relation, 2)
119     end
120   end
121
122   test "shows a deleted node" do
123     node = create(:node, :with_history, :lat => 60, :lon => 30, :visible => false, :version => 2)
124
125     visit node_path(node)
126
127     within_sidebar do
128       assert_css "h2", :text => "Node: #{node.id}"
129       within "h4", :text => "Version #2" do
130         assert_link "2", :href => old_node_path(node, 2)
131       end
132       assert_no_text "Location"
133       assert_text "Deleted"
134
135       assert_no_link "Download XML"
136       assert_link "History", :exact => true, :href => node_history_path(node)
137       assert_no_link "Unredacted History"
138     end
139   end
140
141   test "shows a deleted way" do
142     way = create(:way, :visible => false, :version => 2)
143
144     visit way_path(way)
145
146     within_sidebar do
147       assert_css "h2", :text => "Way: #{way.id}"
148       within "h4", :text => "Version #2" do
149         assert_link "2", :href => old_way_path(way, 2)
150       end
151       assert_text "Deleted"
152
153       assert_no_link "Download XML"
154       assert_link "History", :exact => true, :href => way_history_path(way)
155       assert_no_link "Unredacted History"
156     end
157   end
158
159   test "shows a deleted relation" do
160     relation = create(:relation, :visible => false, :version => 2)
161
162     visit relation_path(relation)
163
164     within_sidebar do
165       assert_css "h2", :text => "Relation: #{relation.id}"
166       within "h4", :text => "Version #2" do
167         assert_link "2", :href => old_relation_path(relation, 2)
168       end
169       assert_text "Deleted"
170
171       assert_no_link "Download XML"
172       assert_link "History", :exact => true, :href => relation_history_path(relation)
173       assert_no_link "Unredacted History"
174     end
175   end
176
177   test "shows node navigation to regular users" do
178     node = create(:node, :with_history)
179
180     sign_in_as(create(:user))
181     visit node_path(node)
182
183     within_sidebar do
184       assert_link "History", :exact => true, :href => node_history_path(node)
185       assert_no_link "Unredacted History"
186     end
187   end
188
189   test "shows way navigation to regular users" do
190     way = create(:way, :with_history)
191
192     sign_in_as(create(:user))
193     visit way_path(way)
194
195     within_sidebar do
196       assert_link "History", :exact => true, :href => way_history_path(way)
197       assert_no_link "Unredacted History"
198     end
199   end
200
201   test "shows relation navigation to regular users" do
202     relation = create(:relation, :with_history)
203
204     sign_in_as(create(:user))
205     visit relation_path(relation)
206
207     within_sidebar do
208       assert_link "History", :exact => true, :href => relation_history_path(relation)
209       assert_no_link "Unredacted History"
210     end
211   end
212
213   test "shows node navigation to moderators" do
214     node = create(:node, :with_history)
215
216     sign_in_as(create(:moderator_user))
217     visit node_path(node)
218
219     within_sidebar do
220       assert_link "History", :exact => true, :href => node_history_path(node)
221       assert_link "Unredacted History", :href => node_history_path(node, :show_redactions => true)
222     end
223   end
224
225   test "shows way navigation to moderators" do
226     way = create(:way, :with_history)
227
228     sign_in_as(create(:moderator_user))
229     visit way_path(way)
230
231     within_sidebar do
232       assert_link "History", :exact => true, :href => way_history_path(way)
233       assert_link "Unredacted History", :href => way_history_path(way, :show_redactions => true)
234     end
235   end
236
237   test "shows relation navigation to moderators" do
238     relation = create(:relation, :with_history)
239
240     sign_in_as(create(:moderator_user))
241     visit relation_path(relation)
242
243     within_sidebar do
244       assert_link "History", :exact => true, :href => relation_history_path(relation)
245       assert_link "Unredacted History", :href => relation_history_path(relation, :show_redactions => true)
246     end
247   end
248
249   test "shows a link to containing relation of a node" do
250     node = create(:node)
251     containing_relation = create(:relation)
252     create(:relation_member, :relation => containing_relation, :member => node)
253
254     visit node_path(node)
255
256     within_sidebar do
257       assert_link :href => relation_path(containing_relation)
258     end
259   end
260
261   test "shows a link to containing relation of a way" do
262     way = create(:way)
263     containing_relation = create(:relation)
264     create(:relation_member, :relation => containing_relation, :member => way)
265
266     visit way_path(way)
267
268     within_sidebar do
269       assert_link :href => relation_path(containing_relation)
270     end
271   end
272
273   test "shows a link to containing relation of a relation" do
274     relation = create(:relation)
275     containing_relation = create(:relation)
276     create(:relation_member, :relation => containing_relation, :member => relation)
277
278     visit relation_path(relation)
279
280     within_sidebar do
281       assert_link :href => relation_path(containing_relation)
282     end
283   end
284
285   test "relation member nodes should be visible on the map when viewing relations" do
286     relation = create(:relation)
287     node = create(:node)
288     create(:relation_member, :relation => relation, :member => node)
289
290     visit relation_path(relation)
291
292     assert_selector "#map .leaflet-overlay-pane path"
293   end
294
295   test "map should center on a viewed node" do
296     node = create(:node, :lat => 59.55555, :lon => 29.55555)
297
298     visit node_path(node)
299
300     within "#map" do
301       click_on "Share"
302     end
303
304     share_url = find_by_id("long_input").value
305     assert_match %r{map=\d+/59\.\d+/29\.\d+}, share_url
306   end
307 end