]> git.openstreetmap.org Git - rails.git/blob - test/system/site_test.rb
Localisation updates from https://translatewiki.net.
[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=H" # assumes that HOT 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   test "tooltips on low zoom levels for disabled control 'Edit'" do
53     check_control_tooltips_on_low_zoom "Edit"
54   end
55   test "tooltips on low zoom levels for disabled control 'Add a note to the map'" do
56     check_control_tooltips_on_low_zoom "Add a note to the map"
57   end
58   test "tooltips on low zoom levels for disabled control 'Query features'" do
59     check_control_tooltips_on_low_zoom "Query features"
60   end
61
62   test "no zoom-in tooltips on high zoom levels, then tooltips appear after zoom out for control 'Edit'" do
63     check_control_tooltips_on_high_zoom "Edit"
64   end
65   test "no zoom-in tooltips on high zoom levels, then tooltips appear after zoom out for control 'Add a note to the map'" do
66     check_control_tooltips_on_high_zoom "Add a note to the map"
67   end
68   test "no zoom-in tooltips on high zoom levels, then tooltips appear after zoom out for control 'Query features'" do
69     check_control_tooltips_on_high_zoom "Query features"
70   end
71
72   test "notes layer tooltip appears on zoom out" do
73     visit "/#map=10/40/-4" # depends on zoom levels where notes are allowed
74
75     within "#map" do
76       click_on "Layers"
77     end
78     within "#map-ui" do
79       assert_field "Map Notes"
80       find_field("Map Notes").hover # try to trigger disabled tooltip
81     end
82     within "#map" do
83       zoom_out = find_link("Zoom Out")
84       zoom_out.hover # un-hover the tooltip that's being tested
85       zoom_out.click(:shift)
86     end
87     within "#map-ui" do
88       assert_field "Map Notes", :disabled => true
89       find_field("Map Notes", :disabled => true).hover
90     end
91     assert_selector ".tooltip", :text => "Zoom in to see"
92   end
93
94   private
95
96   def check_control_tooltips_on_low_zoom(locator)
97     visit "/#map=10/0/0"
98
99     assert_no_selector ".tooltip"
100     find_link(locator).hover
101     assert_selector ".tooltip", :text => "Zoom in to"
102   end
103
104   def check_control_tooltips_on_high_zoom(locator)
105     visit "/#map=14/0/0"
106
107     assert_no_selector ".tooltip"
108     find_link(locator).hover
109     assert_no_selector ".tooltip", :text => "Zoom in to"
110     find("h1").hover # un-hover original element
111
112     visit "#map=10/0/0"
113     find_link(locator, :class => "disabled") # Ensure that capybara has waited for JS to finish processing
114
115     assert_no_selector ".tooltip"
116     find_link(locator).hover
117     assert_selector ".tooltip", :text => "Zoom in to"
118   end
119 end