Rollup merge of #99373 - GuillaumeGomez:source-code-sidebar-tree-auto-expand, r=notriddle

Fix source code sidebar tree auto-expand

Here is the bug:

![Screenshot from 2022-07-17 13-32-00](https://user-images.githubusercontent.com/3050060/179397712-bfb1c279-0ed2-4cb5-aef5-05741921bcc3.png)

It was happening because as soon as we found the file (from the URL), every item following it was then opened, even if it wasn't supposed to.

The GUI test ensures that it doesn't happen by adding two nested levels and ensuring only this path is "open".

r? ``@notriddle``
This commit is contained in:
Yuki Okushi 2022-07-18 08:40:01 +09:00 committed by GitHub
commit 7bbb753d08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 6 deletions

View File

@ -33,7 +33,7 @@ function createDirEntry(elem, parent, fullPath, hasFoundFile) {
folders.className = "folders";
if (elem.dirs) {
for (const dir of elem.dirs) {
if (createDirEntry(dir, folders, fullPath, hasFoundFile)) {
if (createDirEntry(dir, folders, fullPath, false)) {
dirEntry.open = true;
hasFoundFile = true;
}

View File

@ -16,15 +16,27 @@ click: (10, 10)
wait-for: "html:not(.expanded)"
assert: "nav.sidebar"
// Checking that only the path to the current file is "open".
goto: file://|DOC_PATH|/src/lib2/another_folder/sub_mod/mod.rs.html
// First we expand the sidebar again.
click: (10, 10)
// We wait for the sidebar to be expanded.
wait-for-css: (".source-sidebar-expanded nav.sidebar", {"width": "300px"})
assert: "//*[@class='dir-entry' and @open]/*[text()='lib2']"
assert: "//*[@class='dir-entry' and @open]/*[text()='another_folder']"
assert: "//*[@class='dir-entry' and @open]/*[text()='sub_mod']"
// Only "another_folder" should be "open" in "lib2".
assert: "//*[@class='dir-entry' and not(@open)]/*[text()='another_mod']"
// All other trees should be collapsed.
assert-count: ("//*[@id='source-sidebar']/details[not(text()='lib2') and not(@open)]", 5)
// We now switch to mobile mode.
size: (600, 600)
// We check that the sidebar has the expected width (0).
assert-css: ("nav.sidebar", {"width": "0px"})
// We expand the sidebar.
click: "#sidebar-toggle"
assert-css: (".source-sidebar-expanded nav.sidebar", {"width": "600px"})
wait-for-css: (".source-sidebar-expanded nav.sidebar", {"width": "600px"})
// We collapse the sidebar.
click: (10, 10)
// We check that the sidebar has the expected width (0).
assert-css: ("nav.sidebar", {"width": "0px"})
// We ensure that the class has been removed.
assert-false: ".source-sidebar-expanded"
assert: "nav.sidebar"

View File

@ -0,0 +1,3 @@
pub fn another_fn() {}
pub mod sub_mod;

View File

@ -0,0 +1 @@
pub fn subsubsub() {}

View File

@ -0,0 +1 @@
pub fn tadam() {}

View File

@ -2,6 +2,9 @@
#![feature(doc_cfg)]
pub mod another_folder;
pub mod another_mod;
pub mod module {
pub mod sub_module {
pub mod sub_sub_module {