| // Checking the colors of the search tab headers. |
| include: "utils.goml" |
| go-to: "file://" + |DOC_PATH| + "/test_docs/fn.foo.html?search=foo" |
| show-text: true |
| |
| define-function: ( |
| "check-colors", |
| [theme, background, background_selected, background_hover, border_bottom, |
| border_bottom_selected, border_bottom_hover, border_top, border_top_selected, |
| border_top_hover], |
| block { |
| call-function: ("switch-theme", {"theme": |theme|}) |
| |
| // These two commands are used to be sure the search will be run. |
| focus: ".search-input" |
| press-key: "Enter" |
| |
| wait-for: "#search-tabs" |
| assert-css: ("#search-tabs > button:not(.selected)", { |
| "background-color": |background|, |
| "border-bottom": |border_bottom|, |
| "border-top": |border_top|, |
| }) |
| assert-css: ("#search-tabs > button.selected", { |
| "background-color": |background_selected|, |
| "border-bottom": |border_bottom_selected|, |
| "border-top": |border_top_selected|, |
| }) |
| move-cursor-to: "#search-tabs > button:not(.selected)" |
| assert-css: ("#search-tabs > button:not(.selected):hover", { |
| "background-color": |background_hover|, |
| "border-bottom": |border_bottom_hover|, |
| "border-top": |border_top_hover|, |
| }) |
| // To prevent disrupting next run of this function. |
| move-cursor-to: ".search-input" |
| }, |
| ) |
| |
| call-function: ("check-colors", { |
| "theme": "ayu", |
| "background": "transparent", |
| "background_selected": "#141920", |
| "background_hover": "transparent", |
| "border_bottom": "0px none #c5c5c5", |
| "border_bottom_selected": "1px solid #ffb44c", |
| "border_bottom_hover": "1px solid rgba(242, 151, 24, 0.3)", |
| "border_top": "0px none #c5c5c5", |
| "border_top_selected": "0px none #c5c5c5", |
| "border_top_hover": "0px none #c5c5c5", |
| }) |
| call-function: ("check-colors", { |
| "theme": "dark", |
| "background": "#252525", |
| "background_selected": "#353535", |
| "background_hover": "#353535", |
| "border_bottom": "0px none #ddd", |
| "border_bottom_selected": "0px none #ddd", |
| "border_bottom_hover": "0px none #ddd", |
| "border_top": "2px solid #252525", |
| "border_top_selected": "2px solid #0089ff", |
| "border_top_hover": "2px solid #0089ff", |
| }) |
| call-function: ("check-colors", { |
| "theme": "light", |
| "background": "#e6e6e6", |
| "background_selected": "#fff", |
| "background_hover": "#fff", |
| "border_bottom": "0px none #000", |
| "border_bottom_selected": "0px none #000", |
| "border_bottom_hover": "0px none #000", |
| "border_top": "2px solid #e6e6e6", |
| "border_top_selected": "2px solid #0089ff", |
| "border_top_hover": "2px solid #0089ff", |
| }) |
| |
| // set size wide enough that the text is in a single row |
| set-window-size: (851, 600) |
| |
| // Check the size and count in tabs |
| assert-text: ("#search-tabs > button:nth-child(1) > .count", " (25) ") |
| assert-text: ("#search-tabs > button:nth-child(2) > .count", " (6) ") |
| assert-text: ("#search-tabs > button:nth-child(3) > .count", " (0) ") |
| store-property: ("#search-tabs > button:nth-child(1)", {"offsetWidth": buttonWidth}) |
| assert-property: ("#search-tabs > button:nth-child(2)", {"offsetWidth": |buttonWidth|}) |
| assert-property: ("#search-tabs > button:nth-child(3)", {"offsetWidth": |buttonWidth|}) |
| store-property: ("#search-tabs > button:nth-child(1) > .count", {"offsetWidth": countWidth}) |
| assert-property: ("#search-tabs > button:nth-child(2) > .count", {"offsetWidth": |countWidth|}) |
| assert-property: ("#search-tabs > button:nth-child(3) > .count", {"offsetWidth": |countWidth|}) |
| |
| // Check that counts are in a row with each other |
| compare-elements-position: ( |
| "#search-tabs > button:nth-child(1) > .count", |
| "#search-tabs > button:nth-child(2) > .count", |
| ["y"] |
| ) |
| compare-elements-position: ( |
| "#search-tabs > button:nth-child(2) > .count", |
| "#search-tabs > button:nth-child(3) > .count", |
| ["y"] |
| ) |
| // Check that counts are beside the titles and haven't wrapped |
| compare-elements-position-near: ( |
| "#search-tabs > button:nth-child(1)", |
| "#search-tabs > button:nth-child(1) > .count", |
| {"y": 8} |
| ) |
| compare-elements-position-near: ( |
| "#search-tabs > button:nth-child(2)", |
| "#search-tabs > button:nth-child(2) > .count", |
| {"y": 8} |
| ) |
| compare-elements-position-near: ( |
| "#search-tabs > button:nth-child(2)", |
| "#search-tabs > button:nth-child(2) > .count", |
| {"y": 8} |
| ) |
| |
| // Set size narrow enough that they wrap. |
| // When I tested it, it wrapped at 811px, but I added some fudge factor to ensure it |
| // doesn't prematurely wrap with slightly different font kerning or whatever, with a |
| // @media query |
| set-window-size: (850, 600) |
| |
| // all counts and buttons still have same size |
| store-property: ("#search-tabs > button:nth-child(1)", {"offsetWidth": buttonWidth}) |
| assert-property: ("#search-tabs > button:nth-child(2)", {"offsetWidth": |buttonWidth|}) |
| assert-property: ("#search-tabs > button:nth-child(3)", {"offsetWidth": |buttonWidth|}) |
| store-property: ("#search-tabs > button:nth-child(1) > .count", {"offsetWidth": countWidth}) |
| assert-property: ("#search-tabs > button:nth-child(2) > .count", {"offsetWidth": |countWidth|}) |
| assert-property: ("#search-tabs > button:nth-child(3) > .count", {"offsetWidth": |countWidth|}) |
| |
| // Check that counts are still in a row with each other |
| compare-elements-position: ( |
| "#search-tabs > button:nth-child(1) > .count", |
| "#search-tabs > button:nth-child(2) > .count", |
| ["y"] |
| ) |
| compare-elements-position: ( |
| "#search-tabs > button:nth-child(2) > .count", |
| "#search-tabs > button:nth-child(3) > .count", |
| ["y"] |
| ) |
| // Check that counts are NOT beside the titles; now they have wrapped |
| compare-elements-position-near-false: ( |
| "#search-tabs > button:nth-child(1)", |
| "#search-tabs > button:nth-child(1) > .count", |
| {"y": 8} |
| ) |
| compare-elements-position-near-false: ( |
| "#search-tabs > button:nth-child(2)", |
| "#search-tabs > button:nth-child(2) > .count", |
| {"y": 8} |
| ) |
| compare-elements-position-near-false: ( |
| "#search-tabs > button:nth-child(2)", |
| "#search-tabs > button:nth-child(2) > .count", |
| {"y": 8} |
| ) |