]> git.openstreetmap.org Git - rails.git/blob - test/system/site_test.rb
Use jquery interface for enabling/disabling tooltips
[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).hover
75       assert_selector ".tooltip", :text => "Zoom in"
76     end
77   end
78
79   test "notes layer tooltip appears on zoom out" do
80     visit "/#map=9/40/-4" # depends on zoom levels where notes are allowed
81
82     find(".control-layers .control-button").click
83     li = find(".layers-ui .overlay-layers li:first-child")
84     li.not_matches_css? ".disabled"
85     li.hover # try to trigger disabled tooltip
86     zoomout = find(".control-button.zoomout")
87     zoomout.hover # un-hover the tooltip that's being tested
88     zoomout.click
89     li.matches_css? ".disabled"
90     li.hover
91     assert_selector ".tooltip", :text => "Zoom in"
92   end
93 end