summaryrefslogtreecommitdiffstats
path: root/tests/rustdoc-gui/setting-go-to-only-result.goml
blob: c5720b4bf1ac6bf414ddbab08a5755ce50fd398c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// 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: (".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
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",
})