// 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"