// 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|}) } ) goto: "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. goto: "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"} goto: "file://" + |DOC_PATH| + "/lib2/index.html" // We enter it into the search. write: (".search-input", "HasALongTraitWithParams") wait-for-document-property: {"title": "HasALongTraitWithParams in lib2 - Rust"} assert-document-property: ({"URL": "/lib2/struct.HasALongTraitWithParams.html"}, ENDS_WITH) // We try again to see if it goes to the only result goto: "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"} goto: "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", })