// This file contains code to be re-used by other tests. define-function: ( "switch-theme", [theme], block { // Set the theme. // Open the settings menu. click: "rustdoc-toolbar .settings-menu" // Wait for the popover to appear... wait-for: "#settings" // Change the setting. click: "#theme-"+ |theme| // Close the popover. click: "rustdoc-toolbar .settings-menu" // Ensure that the local storage was correctly updated. assert-local-storage: {"rustdoc-theme": |theme|} }, ) define-function: ( "switch-theme-mobile", [theme], block { // Set the theme. // Open the settings menu. click: "rustdoc-topbar .settings-menu" // Wait for the popover to appear... wait-for: "#settings" // Change the setting. click: "#theme-"+ |theme| // Close the popover. click: "rustdoc-topbar .settings-menu" // Ensure that the local storage was correctly updated. assert-local-storage: {"rustdoc-theme": |theme|} }, ) define-function: ( "perform-search", [query], block { // Block requests with doubled `//`. // Amazon S3 doesn't support them, but other web hosts do, // and so do file:/// URLs, which means we need to block // it here if we want to avoid breaking the main docs site. // https://github.com/rust-lang/rust/issues/145646 block-network-request: "file://*//*" // Perform search click: "#search-button" wait-for: ".search-input" write-into: (".search-input", |query|) press-key: 'Enter' // wait for the search to start wait-for: "#search-tabs" // then wait for it to finish wait-for-false: "#search-tabs .count.loading" } )