| // Test that the "hide deprecated" setting is correctly handled. | |
| include: "utils.goml" | |
| go-to: "file://" + |DOC_PATH| + "/lib2/deprecated/index.html" | |
| store-value: (deprecated_class, ".deprecated") | |
| // There should be two deprecated items listed on the module page: | |
| // `DeprecatedStruct` and `DeprecatedTrait`. | |
| assert-count: ("dt" + |deprecated_class|, 2) | |
| // `DeprecatedStruct` and `DeprecatedTrait` should be displayed for now. | |
| assert-css: ("dt" + |deprecated_class|, {"display": "block"}, ALL) | |
| // We enable the "hide deprecated items" setting. | |
| call-function: ("open-settings-menu", {}) | |
| click: "#hide-deprecated-items" | |
| // None of them should be displayed anymore. | |
| wait-for-css: ("dt" + |deprecated_class|, {"display": "none"}, ALL) | |
| // We disable the setting. | |
| click: "#hide-deprecated-items" | |
| // All of them should be displayed back. | |
| wait-for-css: ("dt" + |deprecated_class|, {"display": "block"}, ALL) | |
| // Now we go to a trait with a deprecated method and a deprecated associated const. | |
| go-to: "file://" + |DOC_PATH| + "/lib2/deprecated/trait.NormalTrait.html" | |
| // There should be two deprecated items. | |
| assert-count: ("details" + |deprecated_class|, 2) | |
| // They should be displayed for now. | |
| assert-css: ("details" + |deprecated_class|, {"display": "block"}, ALL) | |
| // We enable the "hide deprecated items" setting. | |
| call-function: ("open-settings-menu", {}) | |
| click: "#hide-deprecated-items" | |
| // They shouldn't be displayed anymore. | |
| wait-for-css: ("details" + |deprecated_class|, {"display": "none"}, ALL) | |
| // We disable the setting. | |
| click: "#hide-deprecated-items" | |
| // All of them should be displayed back. | |
| wait-for-css: ("details" + |deprecated_class|, {"display": "block"}, ALL) | |
| // We now go to a struct with a deprecated method which implements a deprecated trait and a trait | |
| // with deprecated associated items. | |
| go-to: "file://" + |DOC_PATH| + "/lib2/deprecated/struct.NonDeprecatedStruct.html" | |
| // There should be five deprecated items (six minus one "future" deprecated)... | |
| assert-count: ("details" + |deprecated_class|, 5) | |
| // One of which being a deprecated impl because the trait itself is deprecated. | |
| assert-count: ("details.implementors-toggle" + |deprecated_class|, 1) | |
| // And another has `since = "TBD"` and should NOT have the `deprecated` class. | |
| assert: "details:not(" + |deprecated_class| + ") #method\.future_deprecated_fn" | |
| // They should all be displayed for now. | |
| assert-css: ("details" + |deprecated_class|, {"display": "block"}, ALL) | |
| // We enable the "hide deprecated items" setting. | |
| call-function: ("open-settings-menu", {}) | |
| click: "#hide-deprecated-items" | |
| // They shouldn't be displayed anymore. | |
| wait-for-css: ("details" + |deprecated_class|, {"display": "none"}, ALL) | |
| // We disable the setting. | |
| click: "#hide-deprecated-items" | |
| // All of them should be displayed back. | |
| wait-for-css: ("details" + |deprecated_class|, {"display": "block"}, ALL) | |
| // And now we check with the search results. | |
| call-function: ("perform-search", {"query": "deprecated::depr"}) | |
| // There should be at least 7 results. | |
| store-count: ("#results ul.search-results.active > a", nb_search_results) | |
| assert: |nb_search_results| >= 7 | |
| // There should be at least 5 deprecated items. | |
| store-count: ("#results ul.search-results.active > a" + |deprecated_class|, nb_deprecated_results) | |
| assert: |nb_search_results| >= 5 | |
| // Deprecated items should all be displayed. | |
| assert-css: ("#results ul.search-results.active > a" + |deprecated_class|, {"display": "grid"}, ALL) | |
| // The "X deprecated items hidden by setting" element should not be displayed. | |
| assert-text: ( | |
| "#results ul.search-results.active .deprecated-count", | |
| "5 deprecated items hidden by setting", | |
| ) | |
| assert-css: ("#results ul.search-results.active .deprecated-count", {"display": "none"}) | |
| // We enable the "hide deprecated items" setting. | |
| call-function: ("open-settings-menu", {}) | |
| click: "#hide-deprecated-items" | |
| // None of them should be displayed anymore. | |
| wait-for-css: ( | |
| "#results ul.search-results.active > a" + |deprecated_class|, | |
| {"display": "none"}, | |
| ALL, | |
| ) | |
| // The "X deprecated items hidden by setting" element should be displayed. | |
| assert-css: ("#results ul.search-results.active .deprecated-count", {"display": "block"}) | |
| // Finally we check that the future deprecated item doesn't have the deprecated class in the search | |
| // and therefore isn't impacted by the setting. | |
| call-function: ("perform-search", {"query": '"future_deprecated_fn"'}) | |
| assert-text: ( | |
| "#results ul.search-results.active > a:not(" + |deprecated_class| + ") .path", | |
| " lib2::deprecated::NonDeprecatedStruct::future_deprecated_fn", | |
| ) | |
| // The "X deprecated items hidden by setting" element should now be empty, and therefore not displayed. | |
| assert-text: ("#results ul.search-results.active .deprecated-count", "") | |
| assert-css: ("#results ul.search-results.active .deprecated-count", {"display": "none"}) |