X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/b70da7b8ea15ab48bb2f34155567cea6dffc8fc9..f99e028e42c12ad7158160724232eae2b4aef381:/test/system/site_test.rb?ds=sidebyside diff --git a/test/system/site_test.rb b/test/system/site_test.rb index 2ecc7f5a9..d7b9f279e 100644 --- a/test/system/site_test.rb +++ b/test/system/site_test.rb @@ -6,4 +6,91 @@ class SiteTest < ApplicationSystemTestCase assert_selector "h1", :text => "OpenStreetMap" end + + test "tooltip shows for Layers button" do + visit "/" + + assert_no_selector ".tooltip" + button = find ".control-layers .control-button" + button.hover + assert_selector ".tooltip", :text => "Layers" + end + + test "tooltip shows for Map Key button on Standard layer" do + visit "/" + + assert_no_selector ".tooltip" + button = find ".control-key .control-button" + button.hover + tooltip = find ".tooltip" + tooltip.assert_text "Map Key" + tooltip.assert_no_text "not available" + end + + test "tooltip shows for Map Key button on a layer without a key provided" do + visit "/#layers=Y" # assumes that CyclOSM layer has no map key + + assert_no_selector ".tooltip" + button = find ".control-key .control-button" + button.hover + tooltip = find ".tooltip" + tooltip.assert_text "Map Key" + tooltip.assert_text "not available" + end + + test "tooltip shows for query button when zoomed in" do + visit "/#map=14/0/0" + + assert_no_selector ".tooltip" + button = find ".control-query .control-button" + button.hover + tooltip = find ".tooltip" + tooltip.assert_text "Query features" + tooltip.assert_no_text "Zoom in" + end + + [ + "#edit_tab", + ".control-note .control-button", + ".control-query .control-button" + ].each do |selector| + test "tooltips on low zoom levels for disabled control '#{selector}'" do + visit "/#map=10/0/0" + + assert_no_selector ".tooltip" + find(selector).hover + assert_selector ".tooltip", :text => "Zoom in" + end + + test "no zoom-in tooltips on high zoom levels, then tooltips appear after zoom out for control '#{selector}'" do + visit "/#map=14/0/0" + + assert_no_selector ".tooltip" + find(selector).hover + assert_no_selector ".tooltip", :text => "Zoom in" + find("h1").hover # un-hover original element + + visit "#map=10/0/0" + find("#{selector}.disabled") # Ensure that capybara has waited for JS to finish processing + + assert_no_selector ".tooltip" + find(selector).hover + assert_selector ".tooltip", :text => "Zoom in" + end + end + + test "notes layer tooltip appears on zoom out" do + visit "/#map=9/40/-4" # depends on zoom levels where notes are allowed + + find(".control-layers .control-button").click + li = find(".layers-ui .overlay-layers li:first-child") + li.not_matches_css? ".disabled" + li.hover # try to trigger disabled tooltip + zoomout = find(".control-button.zoomout") + zoomout.hover # un-hover the tooltip that's being tested + zoomout.click + li.matches_css? ".disabled" + li.hover + assert_selector ".tooltip", :text => "Zoom in" + end end