// ignore-tidy-linelength // Checks that the search results have the expected width. go-to: "file://" + |DOC_PATH| + "/test_docs/index.html" set-window-size: (900, 1000) write: (".search-input", "test") // To be SURE that the search will be run. press-key: 'Enter' wait-for: "#crate-search" // The width is returned by "getComputedStyle" which returns the exact number instead of the // CSS rule which is "50%"... assert-size: (".search-results div.desc", {"width": 248}) store-size: (".search-results .result-name .typename", {"width": width}) set-window-size: (600, 100) // As counter-intuitive as it may seem, in this width, the width is "100%", which is why // when computed it's larger. assert-size: (".search-results div.desc", {"width": 566}) // The result set is all on one line. compare-elements-position-near: ( ".search-results .result-name .typename", ".search-results .result-name .path", {"y": 2}, ) compare-elements-position-near-false: ( ".search-results .result-name .typename", ".search-results .result-name .path", {"x": 5}, ) // The width of the "typename" isn't fixed anymore in this display mode. store-size: (".search-results .result-name .typename", {"width": new_width}) assert: |new_width| < |width| - 10 // Check that if the search is too long on mobile, it'll go under the "typename". go-to: "file://" + |DOC_PATH| + "/test_docs/index.html?search=SuperIncrediblyLongLongLongLongLongLongLongGigaGigaGigaMegaLongLongLongStructName" wait-for: "#crate-search" compare-elements-position-near: ( ".search-results .result-name .typename", ".search-results .result-name .path", {"y": 2, "x": 0}, ) compare-elements-size-near: ( ".search-results .result-name", ".search-results .result-name .path", {"width": 8, "height": 8}, ) // Check that the crate filter `` isn't bigger than its container (".search-results-title"). assert-css: ("#search", {"width": "640px"}) // Now checking that the crate filter is working as expected too. show-text: true define-function: ( "check-filter", (theme, border, filter, hover_border, hover_filter), block { set-local-storage: {"rustdoc-theme": |theme|, "rustdoc-use-system-theme": "false"} reload: wait-for: "#crate-search" assert-css: ("#crate-search", {"border": "1px solid " + |border|}) assert-css: ("#crate-search-div::after", {"filter": |filter|}) move-cursor-to: "#crate-search" assert-css: ("#crate-search", {"border": "1px solid " + |hover_border|}) assert-css: ("#crate-search-div::after", {"filter": |hover_filter|}) move-cursor-to: ".search-input" }, ) call-function: ("check-filter", { "theme": "ayu", "border": "#5c6773", "filter": "invert(0.41) sepia(0.12) saturate(4.87) hue-rotate(171deg) brightness(0.94) contrast(0.94)", "hover_border": "#e0e0e0", "hover_filter": "invert(0.98) sepia(0.12) saturate(0.81) hue-rotate(343deg) brightness(1.13) contrast(0.76)", }) call-function: ("check-filter", { "theme": "dark", "border": "#e0e0e0", "filter": "invert(0.94) sepia(0) saturate(7.21) hue-rotate(255deg) brightness(0.9) contrast(0.9)", "hover_border": "#2196f3", "hover_filter": "invert(0.69) sepia(0.6) saturate(66.13) hue-rotate(184deg) brightness(1) contrast(0.91)", }) call-function: ("check-filter", { "theme": "light", "border": "#e0e0e0", "filter": "invert(1) sepia(0) saturate(42.23) hue-rotate(289deg) brightness(1.14) contrast(0.76)", "hover_border": "#717171", "hover_filter": "invert(0.44) sepia(0.18) saturate(0.23) hue-rotate(317deg) brightness(0.96) contrast(0.93)", })