rust/tests/rustdoc-gui/setting-go-to-only-result.goml

71 lines
2.6 KiB
Plaintext

// Checks that the setting "Directly go to item in search if there is only one result " is working as expected.
define-function: (
"check-setting",
[storage_value, setting_attribute_value],
block {
assert-local-storage: {"rustdoc-go-to-only-result": |storage_value|}
click: "#settings-menu"
wait-for: "#settings"
assert-property: ("#go-to-only-result", {"checked": |setting_attribute_value|})
}
)
go-to: "file://" + |DOC_PATH| + "/lib2/index.html"
call-function: ("check-setting", {
"storage_value": null,
"setting_attribute_value": "false",
})
// By default, the search doesn't automatically go to the page if there is only one result.
go-to: "file://" + |DOC_PATH| + "/lib2/index.html?search=HasALongTraitWithParams"
// It will timeout if the setting isn't working.
wait-for: "#search"
assert-document-property: ({"URL": "/lib2/index.html"}, CONTAINS)
// Now we change its value.
click: "#settings-menu"
wait-for: "#settings"
click: "#go-to-only-result"
assert-local-storage: {"rustdoc-go-to-only-result": "true"}
go-to: "file://" + |DOC_PATH| + "/lib2/index.html"
// We enter it into the search.
write-into: (".search-input", "HasALongTraitWithParams")
wait-for-document-property: {"title": "HasALongTraitWithParams in lib2 - Rust"}
assert-window-property: ({"location": "/lib2/struct.HasALongTraitWithParams.html"}, ENDS_WITH)
// Regression test for <https://github.com/rust-lang/rust/issues/112676>.
// If "go-to-only-result" is enabled and you go back to history, it should not lead you back to the
// page result again automatically.
history-go-back:
wait-for-document-property: {"title": "lib2 - Rust"}
assert-window-property: ({"location": "/lib2/index.html"}, ENDS_WITH)
// We try again to see if it goes to the only result
go-to: "file://" + |DOC_PATH| + "/lib2/index.html?search=HasALongTraitWithParams"
wait-for-document-property: {"title": "HasALongTraitWithParams in lib2 - Rust"}
assert-document-property: ({"URL": "/lib2/struct.HasALongTraitWithParams.html"}, ENDS_WITH)
// We check the settings
call-function: ("check-setting", {
"storage_value": "true",
"setting_attribute_value": "true",
})
// And now we re-disable the setting.
click: "#go-to-only-result"
assert-local-storage: {"rustdoc-go-to-only-result": "false"}
go-to: "file://" + |DOC_PATH| + "/lib2/index.html?search=HasALongTraitWithParams"
// It will timeout if the setting isn't working.
wait-for: "#search"
assert-document-property: ({"URL": "/lib2/index.html"}, CONTAINS)
// And we check everything is back the way it was before.
call-function: ("check-setting", {
"storage_value": "false",
"setting_attribute_value": "false",
})