Add GUI test for source code viewer scroll handling
This commit is contained in:
parent
c5275027c3
commit
40e3b6ef42
20
src/test/rustdoc-gui/source-anchor-scroll.goml
Normal file
20
src/test/rustdoc-gui/source-anchor-scroll.goml
Normal file
@ -0,0 +1,20 @@
|
||||
// We check that when the anchor changes and is output of the displayed content,
|
||||
// the page is scrolled to it.
|
||||
goto: file://|DOC_PATH|/src/link_to_definition/lib.rs.html
|
||||
|
||||
// We reduce the window size to make it easier to make an element "out of the page".
|
||||
size: (600, 800)
|
||||
// We check that the scroll is at the top first.
|
||||
assert-property: ("html", {"scrollTop": "0"})
|
||||
|
||||
click: '//a[text() = "barbar"]'
|
||||
assert-property: ("html", {"scrollTop": "125"})
|
||||
click: '//a[text() = "bar"]'
|
||||
assert-property: ("html", {"scrollTop": "166"})
|
||||
click: '//a[text() = "sub_fn"]'
|
||||
assert-property: ("html", {"scrollTop": "53"})
|
||||
|
||||
// We now check that clicking on lines doesn't change the scroll
|
||||
// Extra information: the "sub_fn" function header is on line 1.
|
||||
click: '//*[@id="6"]'
|
||||
assert-property: ("html", {"scrollTop": "53"})
|
@ -1,6 +1,35 @@
|
||||
pub fn sub_fn() {
|
||||
barbar();
|
||||
}
|
||||
fn barbar() {
|
||||
bar(vec![], vec![], vec![], vec![], Bar { a: "a".into(), b: 0 });
|
||||
}
|
||||
|
||||
pub struct Bar {
|
||||
pub a: String,
|
||||
pub b: u32,
|
||||
}
|
||||
|
||||
pub fn foo(_b: &Bar) {}
|
||||
|
||||
// The goal now is to add
|
||||
// a lot of lines so
|
||||
// that the next content
|
||||
// will be out of the screen
|
||||
// to allow us to test that
|
||||
// if the anchor changes to
|
||||
// something outside of the
|
||||
// current view, it'll
|
||||
// scroll to it as expected.
|
||||
|
||||
// More filling content.
|
||||
|
||||
pub fn bar(
|
||||
_a: Vec<String>,
|
||||
_b: Vec<String>,
|
||||
_c: Vec<String>,
|
||||
_d: Vec<String>,
|
||||
_e: Bar,
|
||||
) {
|
||||
sub_fn();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user