116 lines
3.4 KiB
Ruby
116 lines
3.4 KiB
Ruby
require "application_system_test_case"
|
|
|
|
class SiteTest < ApplicationSystemTestCase
|
|
test "visiting the index" do
|
|
visit "/"
|
|
|
|
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
|
|
|
|
test "language selector should exist when logged out" do
|
|
visit "/"
|
|
assert_selector ".language-change-trigger", :visible => "all"
|
|
Locale.available
|
|
.each do |locale|
|
|
if I18n.exists? "shared.language_selector.#{locale}"
|
|
assert_selector "option[value='#{locale}']", :visible => "all"
|
|
else
|
|
assert_no_selector "option[value='#{locale}']", :visible => "all"
|
|
end
|
|
end
|
|
end
|
|
|
|
test "language selector should not exist when logged in" do
|
|
sign_in_as(create(:user))
|
|
|
|
visit "/"
|
|
assert_no_selector ".language-change-trigger", :visible => "all"
|
|
end
|
|
end
|