diff options
Diffstat (limited to 'tests/rustdoc-gui/search-filter.goml')
-rw-r--r-- | tests/rustdoc-gui/search-filter.goml | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/rustdoc-gui/search-filter.goml b/tests/rustdoc-gui/search-filter.goml new file mode 100644 index 000000000..5bc6e87d6 --- /dev/null +++ b/tests/rustdoc-gui/search-filter.goml @@ -0,0 +1,87 @@ +// Checks that the crate search filtering is handled correctly and changes the results. +goto: "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. +goto: "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. +local-storage: {"rustdoc-theme": "light", "rustdoc-use-system-theme": "false"} +reload: + +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)", +}) |