]> git.openstreetmap.org Git - rails.git/blob - test/system/site_test.rb
Fix zoom level related tooltips for layer checkboxes
[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   end
65
66   test "notes layer tooltip appears on zoom out" do
67     visit "/#map=9/40/-4" # depends on zoom levels where notes are allowed
68     find(".control-layers .control-button").click
69     li = find(".layers-ui .overlay-layers li:first-child")
70     li.not_matches_css? ".disabled"
71     li.hover # try to trigger disabled tooltip
72     zoomout = find(".control-button.zoomout")
73     zoomout.hover # un-hover the tooltip that's being tested
74     zoomout.click
75     li.matches_css? ".disabled"
76     li.hover
77     assert_selector ".tooltip", :text => "Zoom in"
78   end
79 end