]> git.openstreetmap.org Git - rails.git/blobdiff - test/system/site_test.rb
Use bootstrap badges to implement count-number badges
[rails.git] / test / system / site_test.rb
index 2ecc7f5a9955ac036b98036bfcdbe620160162ba..d7b9f279e9d3d874ca3240d604749efa9e25173f 100644 (file)
@@ -6,4 +6,91 @@ class SiteTest < ApplicationSystemTestCase
 
     assert_selector "h1", :text => "OpenStreetMap"
   end
 
     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
 end