2023-01-08 14:29:57 -06:00
|
|
|
// ignore-tidy-linelength
|
2021-10-18 09:15:09 -05:00
|
|
|
// This test ensures that the items declaration content overflow is handled inside the <pre> directly.
|
2022-11-09 10:00:05 -06:00
|
|
|
|
|
|
|
// We need to disable this check because
|
|
|
|
// `implementors/test_docs/trait.ALongNameBecauseItHelpsTestingTheCurrentProblem.js`
|
|
|
|
// doesn't exist.
|
|
|
|
fail-on-request-error: false
|
|
|
|
|
2022-10-07 13:17:05 -05:00
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/long_trait/trait.ALongNameBecauseItHelpsTestingTheCurrentProblem.html"
|
2021-07-15 11:19:25 -05:00
|
|
|
// We set a fixed size so there is no chance of "random" resize.
|
|
|
|
size: (1100, 800)
|
|
|
|
// Logically, the <body> scroll width should be the width of the window.
|
|
|
|
assert-property: ("body", {"scrollWidth": "1100"})
|
|
|
|
// However, since there is overflow in the type declaration, its scroll width is bigger.
|
2023-01-30 12:05:12 -06:00
|
|
|
assert-property: ("pre.item-decl", {"scrollWidth": "1324"})
|
2021-10-18 09:15:09 -05:00
|
|
|
|
2022-01-20 16:47:26 -06:00
|
|
|
// In the table-ish view on the module index, the name should not be wrapped more than necessary.
|
2022-10-07 13:17:05 -05:00
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/too_long/index.html"
|
2022-01-20 16:47:26 -06:00
|
|
|
assert-property: (".item-table .struct", {"offsetWidth": "684"})
|
|
|
|
|
2021-10-18 09:15:09 -05:00
|
|
|
// We now make the same check on type declaration...
|
2022-10-07 13:17:05 -05:00
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/too_long/type.ReallyLongTypeNameLongLongLong.html"
|
2021-10-18 09:15:09 -05:00
|
|
|
assert-property: ("body", {"scrollWidth": "1100"})
|
|
|
|
// We now check that the section width hasn't grown because of it.
|
2022-09-22 13:51:48 -05:00
|
|
|
assert-property: ("#main-content", {"scrollWidth": "840"})
|
2021-10-18 09:15:09 -05:00
|
|
|
// And now checking that it has scrollable content.
|
2023-01-30 12:05:12 -06:00
|
|
|
assert-property: ("pre.item-decl", {"scrollWidth": "1103"})
|
2021-10-18 09:15:09 -05:00
|
|
|
|
|
|
|
// ... and constant.
|
|
|
|
// On a sidenote, it also checks that the (very) long title isn't changing the docblock width.
|
2022-10-07 13:17:05 -05:00
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/too_long/constant.ReallyLongTypeNameLongLongLongConstBecauseWhyNotAConstRightGigaGigaSupraLong.html"
|
2021-10-18 09:15:09 -05:00
|
|
|
assert-property: ("body", {"scrollWidth": "1100"})
|
|
|
|
// We now check that the section width hasn't grown because of it.
|
2022-09-22 13:51:48 -05:00
|
|
|
assert-property: ("#main-content", {"scrollWidth": "840"})
|
2021-10-18 09:15:09 -05:00
|
|
|
// And now checking that it has scrollable content.
|
2023-01-30 12:05:12 -06:00
|
|
|
assert-property: ("pre.item-decl", {"scrollWidth": "950"})
|
Simplify and unify rustdoc sidebar styles
This switches to just use size, weight, and spacing to distinguish
headings in the sidebar. We no longer use boxes, horizontal bars, or
centering to distinguish headings. This makes it much easier to
understand the hierarchy of headings, and reduces visual noise.
I also refactored how the mobile topbar works. Previously, we tried to
shift around elements from the sidebar to make the topbar. Now, the
topbar gets its own elements, which can be styled on their own. This
makes styling and reasoning about those elements simpler.
Because the heading font sizes are bigger, increase the sidebar width
slightly.
As a very minor change, removed version from the "All types" page. It's
now only on the crate page.
2022-01-06 18:48:24 -06:00
|
|
|
|
|
|
|
// On mobile:
|
|
|
|
size: (600, 600)
|
2022-10-07 13:17:05 -05:00
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/too_long/struct.SuperIncrediblyLongLongLongLongLongLongLongGigaGigaGigaMegaLongLongLongStructName.html"
|
2022-02-04 04:11:03 -06:00
|
|
|
// It shouldn't have an overflow in the topbar either.
|
2022-10-18 13:14:01 -05:00
|
|
|
store-property: (scrollWidth, ".mobile-topbar h2", "scrollWidth")
|
|
|
|
assert-property: (".mobile-topbar h2", {"clientWidth": |scrollWidth|})
|
|
|
|
assert-css: (".mobile-topbar h2", {"overflow-x": "hidden"})
|
2022-11-14 16:27:04 -06:00
|
|
|
|
|
|
|
// Check wrapping for top main-heading h1 and out-of-band.
|
|
|
|
// On desktop, they wrap when too big.
|
|
|
|
size: (1100, 800)
|
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/too_long/struct.SuperIncrediblyLongLongLongLongLongLongLongGigaGigaGigaMegaLongLongLongStructName.html"
|
|
|
|
compare-elements-position-false: (".main-heading h1", ".main-heading .out-of-band", ("y"))
|
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/index.html"
|
|
|
|
compare-elements-position: (".main-heading h1", ".main-heading .out-of-band", ("y"))
|
|
|
|
// make sure there is a gap between them
|
|
|
|
compare-elements-position-near-false: (".main-heading h1", ".main-heading .out-of-band", {"x": 550})
|
|
|
|
|
|
|
|
// On mobile, they always wrap.
|
|
|
|
size: (600, 600)
|
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/too_long/struct.SuperIncrediblyLongLongLongLongLongLongLongGigaGigaGigaMegaLongLongLongStructName.html"
|
|
|
|
compare-elements-position-false: (".main-heading h1", ".main-heading .out-of-band", ("y"))
|
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/index.html"
|
|
|
|
compare-elements-position-false: (".main-heading h1", ".main-heading .out-of-band", ("y"))
|
2023-01-10 11:27:12 -06:00
|
|
|
|
|
|
|
// Now we will check that the scrolling is working.
|
|
|
|
// First on an item with "hidden methods".
|
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/scroll_traits/trait.Iterator.html"
|
|
|
|
|
|
|
|
click: ".item-decl .type-contents-toggle"
|
2023-01-30 12:05:12 -06:00
|
|
|
assert-property: ("pre.item-decl", {"scrollLeft": 0})
|
|
|
|
scroll-to: "//*[@class='rust item-decl']//details/a[text()='String']"
|
|
|
|
assert-property-false: ("pre.item-decl", {"scrollLeft": 0})
|
2023-01-10 11:27:12 -06:00
|
|
|
|
|
|
|
// Then on an item without "hidden methods".
|
|
|
|
goto: "file://" + |DOC_PATH| + "/lib2/scroll_traits/trait.TraitWithLongItemsName.html"
|
2023-01-30 12:05:12 -06:00
|
|
|
assert-property: ("pre.item-decl", {"scrollLeft": 0})
|
|
|
|
scroll-to: "//*[@class='rust item-decl']//code/a[text()='String']"
|
|
|
|
assert-property-false: ("pre.item-decl", {"scrollLeft": 0})
|