blob: a0815bfa9a09adad17a3636977c3a148a45c6736 [file] [log] [blame]
// This test ensures that the "pocket menus" are working as expected.
include: "utils.goml"
go-to: "file://" + |DOC_PATH| + "/test_docs/index.html?search=test"
wait-for: "#crate-search"
// First we check that the help menu doesn't exist yet.
assert-false: "rustdoc-toolbar .help-menu .popover"
// Then we display the help menu.
click: "rustdoc-toolbar .help-menu"
assert: "rustdoc-toolbar .help-menu .popover"
assert-css: ("rustdoc-toolbar .help-menu .popover", {"display": "block"})
// Now we click somewhere else on the page to ensure it is handling the blur event
// correctly.
click: ".sidebar"
assert-false: "rustdoc-toolbar .help-menu .popover"
// Now we will check that we cannot have two "pocket menus" displayed at the same time.
click: "rustdoc-toolbar .help-menu"
assert-css: ("rustdoc-toolbar .help-menu .popover", {"display": "block"})
click: "rustdoc-toolbar .settings-menu"
assert-false: "rustdoc-toolbar .help-menu .popover"
assert-css: ("rustdoc-toolbar .settings-menu .popover", {"display": "block"})
// Now the other way.
click: "rustdoc-toolbar .help-menu"
assert-css: ("rustdoc-toolbar .help-menu .popover", {"display": "block"})
assert-css: ("rustdoc-toolbar .settings-menu .popover", {"display": "none"})
// Now verify that clicking the help menu again closes it.
click: "rustdoc-toolbar .help-menu"
assert-false: "rustdoc-toolbar .help-menu .popover"
assert-css: (".settings-menu .popover", {"display": "none"})
define-function: (
"check-popover-colors",
[theme, border_color],
block {
call-function: ("switch-theme", {"theme": |theme|})
click: "rustdoc-toolbar .help-menu"
assert-css: (
"rustdoc-toolbar .help-menu .popover",
{"display": "block", "border-color": |border_color|},
)
compare-elements-css: (
"rustdoc-toolbar .help-menu .popover",
"rustdoc-toolbar .help-menu .top",
["border-color"],
)
compare-elements-css: (
"rustdoc-toolbar .help-menu .popover",
"rustdoc-toolbar .help-menu .bottom",
["border-color"],
)
}
)
// We check the borders color now:
call-function: ("check-popover-colors", {
"theme": "ayu",
"border_color": "#5c6773",
})
call-function: ("check-popover-colors", {
"theme": "dark",
"border_color": "#e0e0e0",
})
call-function: ("check-popover-colors", {
"theme": "light",
"border_color": "#e0e0e0",
})
// Opening the mobile sidebar should close the settings popover.
set-window-size: (650, 600)
click: "rustdoc-topbar .settings-menu a"
assert-css: ("rustdoc-topbar .settings-menu .popover", {"display": "block"})
click: ".sidebar-menu-toggle"
assert: "//*[@class='sidebar shown']"
assert-css: ("rustdoc-topbar .settings-menu .popover", {"display": "none"})
// Opening the settings popover should close the sidebar.
click: ".settings-menu a"
assert-css: ("rustdoc-topbar .settings-menu .popover", {"display": "block"})
assert-false: "//*[@class='sidebar shown']"
// Opening the settings popover at start (which async loads stuff) should also close.
reload:
click: ".sidebar-menu-toggle"
assert: "//*[@class='sidebar shown']"
assert-false: "rustdoc-topbar .settings-menu .popover"
click: "rustdoc-topbar .settings-menu a"
assert-false: "//*[@class='sidebar shown']"
wait-for: "rustdoc-topbar .settings-menu .popover"