| // This test is to ensure that the anchors (`§`) have the expected color and position. | |
| include: "utils.goml" | |
| define-function: ( | |
| "check-colors", | |
| [theme, main_color, title_color, main_heading_color, main_heading_type_color, src_link_color, sidebar_link_color], | |
| block { | |
| go-to: "file://" + |DOC_PATH| + "/staged_api/struct.Foo.html" | |
| // This is needed to ensure that the text color is computed. | |
| show-text: true | |
| call-function: ("switch-theme", {"theme": |theme|}) | |
| assert-css: ("#toggle-all-docs", {"color": |main_color|}) | |
| assert-css: (".main-heading h1 span", {"color": |main_heading_type_color|}) | |
| assert-css: ( | |
| ".rightside a.src", | |
| {"color": |src_link_color|, "text-decoration": "none"}, | |
| ALL, | |
| ) | |
| compare-elements-css: ( | |
| ".rightside a.src", | |
| "a.rightside.src", | |
| ["color", "text-decoration"], | |
| ) | |
| compare-elements-css: ( | |
| ".main-heading a.src", | |
| "a.rightside.src", | |
| ["color", "text-decoration"], | |
| ) | |
| move-cursor-to: ".main-heading a.src" | |
| assert-css: ( | |
| ".main-heading a.src", | |
| {"color": |src_link_color|, "text-decoration": "underline"}, | |
| ) | |
| move-cursor-to: ".impl-items .rightside a.src" | |
| assert-css: ( | |
| ".impl-items .rightside a.src", | |
| {"color": |src_link_color|, "text-decoration": "none"}, | |
| ) | |
| move-cursor-to: ".impl-items a.rightside.src" | |
| assert-css: ( | |
| ".impl-items a.rightside.src", | |
| {"color": |src_link_color|, "text-decoration": "none"}, | |
| ) | |
| // Now we ensure that the `§` anchor is "reachable" for users on trait methods. | |
| // To ensure the anchor is not hovered, we move the cursor to another item. | |
| move-cursor-to: "#search-button" | |
| // By default, the anchor is not displayed. | |
| wait-for-css: ("#method\.vroum .anchor", {"display": "none"}) | |
| // Once we move the cursor to the method, the anchor should appear. | |
| move-cursor-to: "#method\.vroum .code-header" | |
| assert-css-false: ("#method\.vroum .anchor", {"display": "none"}) | |
| // Now we move the cursor to the anchor to check there is no gap between the method and the | |
| // anchor, making the anchor disappear and preventing users to click on it. | |
| // To make it work, we need to first move it between the method and the anchor. | |
| store-position: ("#method\.vroum .code-header", {"x": method_x, "y": method_y}) | |
| move-cursor-to: (|method_x| - 2, |method_y|) | |
| // Anchor should still be displayed. | |
| assert-css-false: ("#method\.vroum .anchor", {"display": "none"}) | |
| go-to: "file://" + |DOC_PATH| + "/test_docs/struct.HeavilyDocumentedStruct.html" | |
| // Since we changed page, we need to set the theme again. | |
| call-function: ("switch-theme", {"theme": |theme|}) | |
| assert-css: ("#top-doc-prose-title", {"color": |title_color|}) | |
| assert-css: (".sidebar .block a", {"color": |sidebar_link_color|}) | |
| assert-css: (".main-heading h1", {"color": |title_color|}) | |
| // We move the cursor over the "Implementations" title so the anchor is displayed. | |
| move-cursor-to: "h2#implementations" | |
| assert-css: ("h2#implementations a.anchor", {"color": |main_color|}) | |
| // Same thing with the impl block title. | |
| move-cursor-to: "#impl-HeavilyDocumentedStruct" | |
| assert-css: ("#impl-HeavilyDocumentedStruct a.anchor", {"color": |main_color|}) | |
| assert-css: ("#title-for-struct-impl-item-doc", {"margin-left": "0px"}) | |
| }, | |
| ) | |
| call-function: ( | |
| "check-colors", | |
| { | |
| "theme": "ayu", | |
| "main_color": "#c5c5c5", | |
| "title_color": "#fff", | |
| "main_heading_color": "#fff", | |
| "main_heading_type_color": "#ffa0a5", | |
| "src_link_color": "#39afd7", | |
| "sidebar_link_color": "#53b1db", | |
| }, | |
| ) | |
| call-function: ( | |
| "check-colors", | |
| { | |
| "theme": "dark", | |
| "main_color": "#ddd", | |
| "title_color": "#ddd", | |
| "main_heading_color": "#ddd", | |
| "main_heading_type_color": "#2dbfb8", | |
| "src_link_color": "#d2991d", | |
| "sidebar_link_color": "#fdbf35", | |
| }, | |
| ) | |
| call-function: ( | |
| "check-colors", | |
| { | |
| "theme": "light", | |
| "main_color": "black", | |
| "title_color": "black", | |
| "main_heading_color": "black", | |
| "main_heading_type_color": "#ad378a", | |
| "src_link_color": "#3873ad", | |
| "sidebar_link_color": "#356da4", | |
| }, | |
| ) |