rustdoc: add test case for modnav position when TOC is off
This commit is contained in:
parent
12a3c42ccc
commit
bead042d5e
@ -14,12 +14,9 @@
|
|||||||
use rustc_span::{sym, FileName, Symbol};
|
use rustc_span::{sym, FileName, Symbol};
|
||||||
|
|
||||||
use super::print_item::{full_path, item_path, print_item};
|
use super::print_item::{full_path, item_path, print_item};
|
||||||
|
use super::sidebar::{print_sidebar, sidebar_module_like, ModuleLike, Sidebar};
|
||||||
use super::write_shared::write_shared;
|
use super::write_shared::write_shared;
|
||||||
use super::{
|
use super::{collect_spans_and_sources, scrape_examples_help, AllTypes, LinkFromSrc, StylePath};
|
||||||
collect_spans_and_sources, scrape_examples_help,
|
|
||||||
sidebar::{print_sidebar, sidebar_module_like, ModuleLike, Sidebar},
|
|
||||||
AllTypes, LinkFromSrc, StylePath,
|
|
||||||
};
|
|
||||||
use crate::clean::types::ExternalLocation;
|
use crate::clean::types::ExternalLocation;
|
||||||
use crate::clean::utils::has_doc_flag;
|
use crate::clean::utils::has_doc_flag;
|
||||||
use crate::clean::{self, ExternalCrate};
|
use crate::clean::{self, ExternalCrate};
|
||||||
|
@ -7,13 +7,12 @@
|
|||||||
use rustc_hir::def_id::DefIdSet;
|
use rustc_hir::def_id::DefIdSet;
|
||||||
use rustc_middle::ty::{self, TyCtxt};
|
use rustc_middle::ty::{self, TyCtxt};
|
||||||
|
|
||||||
use crate::{
|
|
||||||
clean,
|
|
||||||
formats::{item_type::ItemType, Impl},
|
|
||||||
html::{format::Buffer, markdown::IdMap, markdown::MarkdownWithToc},
|
|
||||||
};
|
|
||||||
|
|
||||||
use super::{item_ty_to_section, Context, ItemSection};
|
use super::{item_ty_to_section, Context, ItemSection};
|
||||||
|
use crate::clean;
|
||||||
|
use crate::formats::item_type::ItemType;
|
||||||
|
use crate::formats::Impl;
|
||||||
|
use crate::html::format::Buffer;
|
||||||
|
use crate::html::markdown::{IdMap, MarkdownWithToc};
|
||||||
|
|
||||||
#[derive(Clone, Copy)]
|
#[derive(Clone, Copy)]
|
||||||
pub(crate) enum ModuleLike {
|
pub(crate) enum ModuleLike {
|
||||||
|
44
tests/rustdoc-gui/sidebar-modnav-position.goml
Normal file
44
tests/rustdoc-gui/sidebar-modnav-position.goml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Verifies that, when TOC is hidden, modnav is always in exactly the same spot
|
||||||
|
// This is driven by a reasonably common use case:
|
||||||
|
//
|
||||||
|
// - There are three or more items that might meet my needs.
|
||||||
|
// - I open the first one, decide it's not what I want, switch to the second one using the sidebar.
|
||||||
|
// - The second one also doesn't meet my needs, so I switch to the third.
|
||||||
|
// - The third also doesn't meet my needs, so...
|
||||||
|
//
|
||||||
|
// because the sibling module nav is in exactly the same place every time,
|
||||||
|
// it's very easy to find and switch between pages that way.
|
||||||
|
|
||||||
|
go-to: "file://" + |DOC_PATH| + "/test_docs/enum.WhoLetTheDogOut.html"
|
||||||
|
show-text: true
|
||||||
|
set-local-storage: {"rustdoc-hide-toc": "true"}
|
||||||
|
|
||||||
|
define-function: (
|
||||||
|
"check-positions",
|
||||||
|
[url],
|
||||||
|
block {
|
||||||
|
go-to: "file://" + |DOC_PATH| + |url|
|
||||||
|
// Checking results colors.
|
||||||
|
assert-position: ("#rustdoc-modnav > h2", {"x": |h2_x|, "y": |h2_y|})
|
||||||
|
assert-position: (
|
||||||
|
"#rustdoc-modnav > ul:first-of-type > li:first-of-type",
|
||||||
|
{"x": |x|, "y": |y|}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
// First, at test_docs root
|
||||||
|
go-to: "file://" + |DOC_PATH| + "/test_docs/enum.WhoLetTheDogOut.html"
|
||||||
|
store-position: ("#rustdoc-modnav > h2", {"x": h2_x, "y": h2_y})
|
||||||
|
store-position: ("#rustdoc-modnav > ul:first-of-type > li:first-of-type", {"x": x, "y": y})
|
||||||
|
call-function: ("check-positions", {"url": "/test_docs/enum.WhoLetTheDogOut.html"})
|
||||||
|
call-function: ("check-positions", {"url": "/test_docs/struct.StructWithPublicUndocumentedFields.html"})
|
||||||
|
call-function: ("check-positions", {"url": "/test_docs/codeblock_sub/index.html"})
|
||||||
|
|
||||||
|
// Now in a submodule
|
||||||
|
go-to: "file://" + |DOC_PATH| + "/test_docs/fields/struct.Struct.html"
|
||||||
|
store-position: ("#rustdoc-modnav > h2", {"x": h2_x, "y": h2_y})
|
||||||
|
store-position: ("#rustdoc-modnav > ul:first-of-type > li:first-of-type", {"x": x, "y": y})
|
||||||
|
call-function: ("check-positions", {"url": "/test_docs/fields/struct.Struct.html"})
|
||||||
|
call-function: ("check-positions", {"url": "/test_docs/fields/union.Union.html"})
|
||||||
|
call-function: ("check-positions", {"url": "/test_docs/fields/enum.Enum.html"})
|
Loading…
Reference in New Issue
Block a user