]> git.openstreetmap.org Git - rails.git/blob - test/system/site_test.rb
Merge remote-tracking branch 'upstream/pull/5139'
[rails.git] / test / system / site_test.rb
1 require "application_system_test_case"
2
3 class SiteTest < ApplicationSystemTestCase
4   test "visiting the index" do
5     visit "/"
6
7     assert_selector "h1", :text => "OpenStreetMap"
8   end
9
10   test "tooltip shows for Layers button" do
11     visit "/"
12
13     assert_no_selector ".tooltip"
14     button = find ".control-layers .control-button"
15     button.hover
16     assert_selector ".tooltip", :text => "Layers"
17   end
18
19   test "tooltip shows for Map Key button on Standard layer" do
20     visit "/"
21
22     assert_no_selector ".tooltip"
23     button = find ".control-key .control-button"
24     button.hover
25     tooltip = find ".tooltip"
26     tooltip.assert_text "Map Key"
27     tooltip.assert_no_text "not available"
28   end
29
30   test "tooltip shows for Map Key button on a layer without a key provided" do
31     visit "/#layers=Y" # assumes that CyclOSM layer has no map key
32
33     assert_no_selector ".tooltip"
34     button = find ".control-key .control-button"
35     button.hover
36     tooltip = find ".tooltip"
37     tooltip.assert_text "Map Key"
38     tooltip.assert_text "not available"
39   end
40
41   test "tooltip shows for query button when zoomed in" do
42     visit "/#map=14/0/0"
43
44     assert_no_selector ".tooltip"
45     button = find ".control-query .control-button"
46     button.hover
47     tooltip = find ".tooltip"
48     tooltip.assert_text "Query features"
49     tooltip.assert_no_text "Zoom in"
50   end
51
52   [
53     "#edit_tab",
54     ".control-note .control-button",
55     ".control-query .control-button"
56   ].each do |selector|
57     test "tooltips on low zoom levels for disabled control '#{selector}'" do
58       visit "/#map=10/0/0"
59
60       assert_no_selector ".tooltip"
61       find(selector).hover
62       assert_selector ".tooltip", :text => "Zoom in"
63     end
64
65     test "no zoom-in tooltips on high zoom levels, then tooltips appear after zoom out for control '#{selector}'" do
66       visit "/#map=14/0/0"
67
68       assert_no_selector ".tooltip"
69       find(selector).hover
70       assert_no_selector ".tooltip", :text => "Zoom in"
71       find("h1").hover # un-hover original element
72
73       visit "#map=10/0/0"
74       find("#{selector}.disabled") # Ensure that capybara has waited for JS to finish processing
75
76       assert_no_selector ".tooltip"
77       find(selector).hover
78       assert_selector ".tooltip", :text => "Zoom in"
79     end
80   end
81
82   test "notes layer tooltip appears on zoom out" do
83     visit "/#map=9/40/-4" # depends on zoom levels where notes are allowed
84
85     find(".control-layers .control-button").click
86     li = find(".layers-ui .overlay-layers li:first-child")
87     li.not_matches_css? ".disabled"
88     li.hover # try to trigger disabled tooltip
89     zoomout = find(".control-button.zoomout")
90     zoomout.hover # un-hover the tooltip that's being tested
91     zoomout.click
92     li.matches_css? ".disabled"
93     li.hover
94     assert_selector ".tooltip", :text => "Zoom in"
95   end
96 end