summaryrefslogtreecommitdiffstats
path: root/tests/rustdoc-gui/help-page.goml
blob: 84c20355500abee5acaf472ca6ad5b9d1ecf4f6e (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
64
65
66
67
68
69
70
71
// This test ensures that opening the help page in its own tab works.
go-to: "file://" + |DOC_PATH| + "/help.html"
set-window-size: (1000, 1000) // Try desktop size first.
wait-for: "#help"
assert-css: ("#help", {"display": "block"})
assert-css: ("#help dd", {"font-size": "16px"})
click: "#help-button > a"
assert-css: ("#help", {"display": "block"})
compare-elements-property: (".sub", "#help", ["offsetWidth"])
compare-elements-position: (".sub", "#help", ("x"))
set-window-size: (500, 1000) // Try mobile next.
assert-css: ("#help", {"display": "block"})
compare-elements-property: (".sub", "#help", ["offsetWidth"])
compare-elements-position: (".sub", "#help", ("x"))

// Checking the color of the elements of the help menu.
show-text: true
define-function: (
    "check-colors",
    (theme, color, background, box_shadow),
    block {
        // Setting the theme.
        set-local-storage: {"rustdoc-theme": |theme|, "rustdoc-use-system-theme": "false"}
        // We reload the page so the local storage settings are being used.
        reload:
        assert-css: ("#help kbd", {
            "color": |color|,
            "background-color": |background|,
            "box-shadow": |box_shadow| + " 0px -1px 0px 0px inset",
        }, ALL)
    },
)

call-function: ("check-colors", {
    "theme": "ayu",
    "color": "#c5c5c5",
    "background": "#314559",
    "box_shadow": "#5c6773",
})
call-function: ("check-colors", {
    "theme": "dark",
    "color": "#000",
    "background": "#fafbfc",
    "box_shadow": "#c6cbd1",
})
call-function: ("check-colors", {
    "theme": "light",
    "color": "#000",
    "background": "#fafbfc",
    "box_shadow": "#c6cbd1",
})

// This test ensures that opening the help popover without switching pages works.
go-to: "file://" + |DOC_PATH| + "/test_docs/index.html"
set-window-size: (1000, 1000) // Only supported on desktop.
assert-false: "#help"
click: "#help-button > a"
assert-css: ("#help", {"display": "block"})
assert-css: ("#help dd", {"font-size": "16px"})
click: "#help-button > a"
assert-css: ("#help", {"display": "none"})
compare-elements-property-false: (".sub", "#help", ["offsetWidth"])
compare-elements-position-false: (".sub", "#help", ("x"))

// This test ensures that the "the rustdoc book" anchor link within the help popover works.
go-to: "file://" + |DOC_PATH| + "/test_docs/index.html"
set-window-size: (1000, 1000) // Popover only appears when the screen width is >700px.
assert-false: "#help"
click: "#help-button > a"
click: "//*[@id='help']//a[text()='the rustdoc book']"
wait-for-document-property: ({"URL": "https://doc.rust-lang.org/"}, STARTS_WITH)