| // Checks that the documentation toggles have the correct position, style and work as expected. |
| goto: "file://" + |DOC_PATH| + "/test_docs/index.html" |
| assert-attribute: ("#main-content > details.top-doc", {"open": ""}) |
| assert-text: ("#toggle-all-docs", "[−]") |
| click: "#toggle-all-docs" |
| wait-for: 50 |
| // This is now collapsed so there shouldn't be the "open" attribute on details. |
| assert-attribute-false: ("#main-content > details.top-doc", {"open": ""}) |
| assert-text: ("#toggle-all-docs", "[+]") |
| 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", "[−]") |
| |
| // Check that it works on non-module pages as well. |
| goto: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html" |
| // We first check that everything is visible. |
| assert-text: ("#toggle-all-docs", "[−]") |
| 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, |
| ) |
| |
| // We collapse them all. |
| click: "#toggle-all-docs" |
| wait-for-text: ("#toggle-all-docs", "[+]") |
| // 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": ""}) |
| // 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", "[−]") |
| assert-attribute: ("details.rustdoc-toggle", {"open": ""}, ALL) |