1 require "application_system_test_case"
3 class HistoryTest < ApplicationSystemTestCase
6 test "atom link on user's history is not modified" do
8 create(:changeset, :user => user, :num_changes => 1) do |changeset|
9 create(:changeset_tag, :changeset => changeset, :k => "comment", :v => "first-changeset-in-history")
12 visit "#{user_path(user)}/history"
13 changesets = find "div.changesets"
14 changesets.assert_text "first-changeset-in-history"
16 assert_css "link[type='application/atom+xml'][href$='#{user_path(user)}/history/feed']", :visible => false
19 test "have only one list element on user's changesets page" do
21 create_visible_changeset(user, "first-changeset-in-history")
22 create_visible_changeset(user, "bottom-changeset-in-batch-2")
23 (PAGE_SIZE - 1).times do
24 create_visible_changeset(user, "next-changeset")
26 create_visible_changeset(user, "bottom-changeset-in-batch-1")
27 (PAGE_SIZE - 1).times do
28 create_visible_changeset(user, "next-changeset")
31 assert_nothing_raised do
32 visit "#{user_path(user)}/history"
33 changesets = find "div.changesets"
34 changesets.assert_text "bottom-changeset-in-batch-1"
35 changesets.assert_no_text "bottom-changeset-in-batch-2"
36 changesets.assert_no_text "first-changeset-in-history"
37 changesets.assert_selector "ol", :count => 1
38 changesets.assert_selector "li", :count => PAGE_SIZE
40 changesets.find(".changeset_more a.btn").click
41 changesets.assert_text "bottom-changeset-in-batch-1"
42 changesets.assert_text "bottom-changeset-in-batch-2"
43 changesets.assert_no_text "first-changeset-in-history"
44 changesets.assert_selector "ol", :count => 1
45 changesets.assert_selector "li", :count => 2 * PAGE_SIZE
47 changesets.find(".changeset_more a.btn").click
48 changesets.assert_text "bottom-changeset-in-batch-1"
49 changesets.assert_text "bottom-changeset-in-batch-2"
50 changesets.assert_text "first-changeset-in-history"
51 changesets.assert_selector "ol", :count => 1
52 changesets.assert_selector "li", :count => (2 * PAGE_SIZE) + 1
56 test "user history starts before specified changeset" do
58 changeset1 = create_visible_changeset(user, "1st-changeset-in-history")
59 changeset2 = create_visible_changeset(user, "2nd-changeset-in-history")
60 changeset3 = create(:changeset)
62 visit "#{user_path user}/history?before=#{changeset1.id}"
65 assert_no_link "1st-changeset-in-history"
66 assert_no_link "2nd-changeset-in-history"
69 visit "#{user_path user}/history?before=#{changeset2.id}"
72 assert_link "1st-changeset-in-history"
73 assert_no_link "2nd-changeset-in-history"
76 visit "#{user_path user}/history?before=#{changeset3.id}"
79 assert_link "1st-changeset-in-history"
80 assert_link "2nd-changeset-in-history"
84 test "user history starts after specified changeset" do
86 changeset0 = create(:changeset)
87 changeset1 = create_visible_changeset(user, "1st-changeset-in-history")
88 changeset2 = create_visible_changeset(user, "2nd-changeset-in-history")
90 visit "#{user_path user}/history?after=#{changeset2.id}"
93 assert_no_link "1st-changeset-in-history"
94 assert_no_link "2nd-changeset-in-history"
97 visit "#{user_path user}/history?after=#{changeset1.id}"
100 assert_no_link "1st-changeset-in-history"
101 assert_link "2nd-changeset-in-history"
104 visit "#{user_path user}/history?after=#{changeset0.id}"
107 assert_link "1st-changeset-in-history"
108 assert_link "2nd-changeset-in-history"
112 test "update sidebar when before param is included and map is moved" do
113 changeset1 = create(:changeset, :num_changes => 1, :min_lat => 50000000, :max_lat => 50000001, :min_lon => 50000000, :max_lon => 50000001)
114 create(:changeset_tag, :changeset => changeset1, :k => "comment", :v => "changeset-at-fives")
115 changeset2 = create(:changeset, :num_changes => 1, :min_lat => 50100000, :max_lat => 50100001, :min_lon => 50100000, :max_lon => 50100001)
116 create(:changeset_tag, :changeset => changeset2, :k => "comment", :v => "changeset-close-to-fives")
117 changeset3 = create(:changeset)
119 visit "/history?before=#{changeset3.id}#map=17/5/5"
122 assert_link "changeset-at-fives"
123 assert_no_link "changeset-close-to-fives"
126 find("#map [aria-label='Zoom Out']").click(:shift)
129 assert_link "changeset-at-fives"
130 assert_link "changeset-close-to-fives"
133 assert_current_path history_path
138 def create_visible_changeset(user, comment)
139 create(:changeset, :user => user, :num_changes => 1) do |changeset|
140 create(:changeset_tag, :changeset => changeset, :k => "comment", :v => comment)