summaryrefslogtreecommitdiffstats
path: root/src/test/rustdoc-gui/notable-trait.goml
blob: efe0cb15f08a08bbd0543f937a5f534e4081c7be (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// This test checks the position of the `i` for the notable traits.
goto: "file://" + |DOC_PATH| + "/test_docs/struct.NotableStructWithLongName.html"
show-text: true
// We start with a wide screen.
size: (1100, 600)
// Checking they have the same y position.
compare-elements-position: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    ("y"),
)
// Checking they don't have the same x position.
compare-elements-position-false: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    ("x"),
)
// The `i` should be *after* the type.
assert-position: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    {"x": 677},
)
assert-position: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    {"x": 951},
)
// The tooltip should be beside the `i`
click: "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']"
compare-elements-position-near: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits-tooltiptext force-tooltip']",
    {"y": 2}
)
compare-elements-position-false: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits-tooltiptext force-tooltip']",
    ("x")
)
// The docblock should be flush with the border.
assert-css: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits-tooltiptext force-tooltip']/*[@class='docblock']",
    {"margin-left": "0px"}
)

// Now only the `i` should be on the next line.
size: (1055, 600)
compare-elements-position-false: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    ("y", "x"),
)

// Now both the `i` and the struct name should be on the next line.
size: (980, 600)
// Checking they have the same y position.
compare-elements-position: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    ("y"),
)
// Checking they don't have the same x position.
compare-elements-position-false: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    ("x"),
)
// The `i` should be *after* the type.
assert-position: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    {"x": 245},
)
assert-position: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    {"x": 519},
)

// Checking on mobile now.
size: (650, 600)
// Checking they have the same y position.
compare-elements-position: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    ("y"),
)
// Checking they don't have the same x position.
compare-elements-position-false: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    ("x"),
)
// The `i` should be *after* the type.
assert-position: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    {"x": 15},
)
assert-position: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    {"x": 289},
)
// The tooltip should be below `i`
compare-elements-position-near-false: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits-tooltiptext force-tooltip']",
    {"y": 2}
)
compare-elements-position-false: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits-tooltiptext force-tooltip']",
    ("x")
)
compare-elements-position-near: (
    "//*[@id='method.create_an_iterator_from_read']/parent::*",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits-tooltiptext force-tooltip']",
    {"x": 5}
)
// The docblock should be flush with the border.
assert-css: (
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits-tooltiptext force-tooltip']/*[@class='docblock']",
    {"margin-left": "0px"}
)

// Checking on very small mobile. The `i` should be on its own line.
size: (365, 600)
compare-elements-position-false: (
    "//*[@id='method.create_an_iterator_from_read']//a[text()='NotableStructWithLongName']",
    "//*[@id='method.create_an_iterator_from_read']//*[@class='notable-traits']",
    ("y", "x"),
)