| // 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: "#help-button .popover" |
| // Then we display the help menu. |
| click: "#help-button" |
| assert: "#help-button .popover" |
| assert-css: ("#help-button .popover", {"display": "block"}) |
| |
| // Now we click somewhere else on the page to ensure it is handling the blur event |
| // correctly. |
| click: ".sidebar" |
| assert-css: ("#help-button .popover", {"display": "none"}) |
| |
| // Now we will check that we cannot have two "pocket menus" displayed at the same time. |
| click: "#help-button" |
| assert-css: ("#help-button .popover", {"display": "block"}) |
| click: "#settings-menu" |
| assert-css: ("#help-button .popover", {"display": "none"}) |
| assert-css: ("#settings-menu .popover", {"display": "block"}) |
| |
| // Now the other way. |
| click: "#help-button" |
| assert-css: ("#help-button .popover", {"display": "block"}) |
| assert-css: ("#settings-menu .popover", {"display": "none"}) |
| |
| // Now verify that clicking the help menu again closes it. |
| click: "#help-button" |
| assert-css: ("#help-button .popover", {"display": "none"}) |
| assert-css: ("#settings-menu .popover", {"display": "none"}) |
| |
| define-function: ( |
| "check-popover-colors", |
| [theme, border_color], |
| block { |
| call-function: ("switch-theme", {"theme": |theme|}) |
| |
| click: "#help-button" |
| assert-css: ( |
| "#help-button .popover", |
| {"display": "block", "border-color": |border_color|}, |
| ) |
| compare-elements-css: ("#help-button .popover", "#help-button .top", ["border-color"]) |
| compare-elements-css: ("#help-button .popover", "#help-button .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: "#settings-menu a" |
| assert-css: ("#settings-menu .popover", {"display": "block"}) |
| click: ".sidebar-menu-toggle" |
| assert: "//*[@class='sidebar shown']" |
| assert-css: ("#settings-menu .popover", {"display": "none"}) |
| // Opening the settings popover should close the sidebar. |
| click: "#settings-menu a" |
| assert-css: ("#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: "#settings-menu .popover" |
| click: "#settings-menu a" |
| assert-false: "//*[@class='sidebar shown']" |
| wait-for: "#settings-menu .popover" |