diff options
author | Dean Li <deantvv@gmail.com> | 2021-06-03 13:26:27 +0000 |
---|---|---|
committer | Dean Li <deantvv@gmail.com> | 2021-08-30 11:55:58 +0000 |
commit | 7944db336ca3ef0338369091af60aa2b15789952 (patch) | |
tree | 98d5c2a9e9a007a569710d60328e32713d832b60 /tests/serve_request.rs | |
parent | Add CHANGELOG entry for binding behavior revamp (diff) | |
download | miniserve-7944db336ca3ef0338369091af60aa2b15789952.tar.gz miniserve-7944db336ca3ef0338369091af60aa2b15789952.zip |
Implement show symlink destination
Add option `show_symlink_info` to represent show symlink info or not.
(Default to no)
Show symlink destination after symlink symbol in directory listing
Resemble `ls -l` and also the short argument select for this feature
is also `-l`.
Basic testing is included.
Related to #499
Diffstat (limited to 'tests/serve_request.rs')
-rw-r--r-- | tests/serve_request.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/tests/serve_request.rs b/tests/serve_request.rs index bbbb7d9..ddf0471 100644 --- a/tests/serve_request.rs +++ b/tests/serve_request.rs @@ -123,10 +123,12 @@ fn serves_requests_no_hidden_files_without_flag(server: TestServer) -> Result<() } #[rstest] -#[case(true, server(&["--no-symlinks"]))] -#[case(false, server(None::<&str>))] +#[case(true, false, server(&["--no-symlinks"]))] +#[case(true, true, server(&["--no-symlinks", "--show-symlink-info"]))] +#[case(false, false, server(None::<&str>))] fn serves_requests_symlinks( #[case] no_symlinks: bool, + #[case] show_symlink_info: bool, #[case] server: TestServer, ) -> Result<(), Error> { let files = &["symlink-file.html"]; @@ -154,6 +156,9 @@ fn serves_requests_symlinks( .find(|x: &Node| x.name().unwrap_or_default() == "a" && x.text() == entry) .next(); assert_eq!(node.is_none(), no_symlinks); + if node.is_some() && show_symlink_info { + assert_eq!(node.unwrap().attr("class").unwrap(), "symlink"); + } if no_symlinks { continue; } @@ -162,9 +167,15 @@ fn serves_requests_symlinks( assert_eq!(node.attr("href").unwrap().strip_prefix("/").unwrap(), entry); reqwest::blocking::get(server.url().join(&entry)?)?.error_for_status()?; if entry.ends_with("/") { - assert_eq!(node.attr("class").unwrap(), "directory"); + let node = parsed + .find(|x: &Node| x.name().unwrap_or_default() == "a" && x.text() == DIRECTORIES[0]) + .next(); + assert_eq!(node.unwrap().attr("class").unwrap(), "directory"); } else { - assert_eq!(node.attr("class").unwrap(), "file"); + let node = parsed + .find(|x: &Node| x.name().unwrap_or_default() == "a" && x.text() == FILES[0]) + .next(); + assert_eq!(node.unwrap().attr("class").unwrap(), "file"); } } for &entry in broken { |