rust/src/test/rustdoc-gui/toggle-docs.goml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

72 lines
2.9 KiB
Plaintext
Raw Normal View History

2022-01-21 13:41:47 -06:00
// Checks that the documentation toggles have the correct position, style and work as expected.
goto: "file://" + |DOC_PATH| + "/test_docs/index.html"
2021-11-29 10:14:05 -06:00
assert-attribute: ("#main-content > details.top-doc", {"open": ""})
assert-text: ("#toggle-all-docs", "[]")
2021-02-21 07:25:12 -06:00
click: "#toggle-all-docs"
2022-02-19 07:46:37 -06:00
wait-for: 50
// This is now collapsed so there shouldn't be the "open" attribute on details.
2021-11-29 10:14:05 -06:00
assert-attribute-false: ("#main-content > details.top-doc", {"open": ""})
assert-text: ("#toggle-all-docs", "[+]")
2021-02-21 07:25:12 -06:00
click: "#toggle-all-docs"
// Not collapsed anymore so the "open" attribute should be back.
wait-for-attribute: ("#main-content > details.top-doc", {"open": ""})
assert-text: ("#toggle-all-docs", "[]")
2022-02-19 07:46:37 -06:00
// Check that it works on non-module pages as well.
goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html"
2022-02-19 07:46:37 -06:00
// We first check that everything is visible.
assert-text: ("#toggle-all-docs", "[]")
2022-03-08 10:52:31 -06:00
assert-attribute: ("#implementations-list details.rustdoc-toggle", {"open": ""}, ALL)
assert-attribute: ("#trait-implementations-list details.rustdoc-toggle", {"open": ""}, ALL)
assert-attribute-false: (
"#blanket-implementations-list > details.rustdoc-toggle",
{"open": ""},
ALL,
)
2022-02-19 07:46:37 -06:00
// We collapse them all.
click: "#toggle-all-docs"
wait-for-text: ("#toggle-all-docs", "[+]")
2022-02-19 07:46:37 -06:00
// We check that all <details> are collapsed (except for the impl block ones).
assert-attribute-false: ("details.rustdoc-toggle:not(.implementors-toggle)", {"open": ""}, ALL)
assert-attribute: ("#implementations-list > details.implementors-toggle", {"open": ""})
2022-02-19 07:46:37 -06:00
// We now check that the other impl blocks are collapsed.
assert-attribute-false: (
"#blanket-implementations-list > details.rustdoc-toggle.implementors-toggle",
{"open": ""},
ALL,
)
// We open them all again.
click: "#toggle-all-docs"
wait-for-text: ("#toggle-all-docs", "[]")
2022-02-19 07:46:37 -06:00
assert-attribute: ("details.rustdoc-toggle", {"open": ""}, ALL)
// Checking the toggles style.
show-text: true
define-function: (
"check-color",
(theme, filter),
[
// Setting the theme.
("local-storage", {"rustdoc-theme": |theme|, "rustdoc-use-system-theme": "false"}),
// We reload the page so the local storage settings are being used.
("reload"),
("assert-css", ("details.rustdoc-toggle > summary::before", {
"opacity": "0.5",
"filter": |filter|,
}, ALL)),
("move-cursor-to", "details.rustdoc-toggle summary"),
("assert-css", ("details.rustdoc-toggle > summary:hover::before", {
"opacity": "1",
"filter": |filter|,
})),
// moving the cursor somewhere else to not mess with next function calls.
("move-cursor-to", ".search-input"),
]
)
call-function: ("check-color", {"theme": "ayu", "filter": "invert(1)"})
call-function: ("check-color", {"theme": "dark", "filter": "invert(1)"})
call-function: ("check-color", {"theme": "light", "filter": "none"})