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