| // Checks that the crate search filtering is handled correctly and changes the results. |
| go-to: "file://" + |DOC_PATH| + "/test_docs/index.html" |
| show-text: true |
| write: (".search-input", "test") |
| // To be SURE that the search will be run. |
| press-key: 'Enter' |
| // Waiting for the search results to appear... |
| wait-for: "#search-tabs" |
| assert-text: ("#results .externcrate", "test_docs") |
| |
| wait-for: "#crate-search" |
| // We now want to change the crate filter. |
| click: "#crate-search" |
| // We select "lib2" option then press enter to change the filter. |
| press-key: "ArrowDown" |
| press-key: "ArrowDown" |
| press-key: "ArrowDown" |
| press-key: "ArrowDown" |
| press-key: "Enter" |
| // Waiting for the search results to appear... |
| wait-for: "#search-tabs" |
| assert-document-property: ({"URL": "&filter-crate="}, CONTAINS) |
| // We check that there is no more "test_docs" appearing. |
| assert-false: "#results .externcrate" |
| // We also check that "lib2" is the filter crate. |
| assert-property: ("#crate-search", {"value": "lib2"}) |
| |
| // Now we check that leaving the search results and putting them back keeps the |
| // crate filtering. |
| press-key: "Escape" |
| wait-for-css: ("#main-content", {"display": "block"}) |
| focus: ".search-input" |
| wait-for-css: ("#main-content", {"display": "none"}) |
| // We check that there is no more "test_docs" appearing. |
| assert-false: "#results .externcrate" |
| assert-property: ("#crate-search", {"value": "lib2"}) |
| |
| // Selecting back "All crates" |
| click: "#crate-search" |
| press-key: "ArrowUp" |
| press-key: "ArrowUp" |
| press-key: "ArrowUp" |
| press-key: "ArrowUp" |
| press-key: "Enter" |
| // Waiting for the search results to appear... |
| wait-for: "#search-tabs" |
| assert-property: ("#crate-search", {"value": "all crates"}) |
| |
| // Checking that the URL parameter is taken into account for crate filtering. |
| go-to: "file://" + |DOC_PATH| + "/test_docs/index.html?search=test&filter-crate=lib2" |
| wait-for: "#crate-search" |
| assert-property: ("#crate-search", {"value": "lib2"}) |
| assert-false: "#results .externcrate" |
| |
| // Checking that the text for the "title" is correct (the "all crates" comes from the "<select>"). |
| assert-text: (".search-results-title", "Results in all crates", STARTS_WITH) |
| |
| // Checking the display of the crate filter. |
| // We start with the light theme. |
| set-local-storage: {"rustdoc-theme": "light", "rustdoc-use-system-theme": "false"} |
| reload: |
| |
| set-timeout: 2000 |
| wait-for: "#crate-search" |
| assert-css: ("#crate-search", { |
| "border": "1px solid rgb(224, 224, 224)", |
| "color": "rgb(0, 0, 0)", |
| "background-color": "rgb(255, 255, 255)", |
| }) |
| |
| // We now check the dark theme. |
| click: "#settings-menu" |
| wait-for: "#settings" |
| click: "#theme-dark" |
| wait-for-css: ("#crate-search", { |
| "border": "1px solid rgb(224, 224, 224)", |
| "color": "rgb(221, 221, 221)", |
| "background-color": "rgb(53, 53, 53)", |
| }) |
| |
| // And finally we check the ayu theme. |
| click: "#theme-ayu" |
| wait-for-css: ("#crate-search", { |
| "border": "1px solid rgb(92, 103, 115)", |
| "color": "rgb(255, 255, 255)", |
| "background-color": "rgb(15, 20, 25)", |
| }) |