diff options
Diffstat (limited to 'tests/navigation.rs')
-rw-r--r-- | tests/navigation.rs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/tests/navigation.rs b/tests/navigation.rs index 3d8f37f..c5c18cb 100644 --- a/tests/navigation.rs +++ b/tests/navigation.rs @@ -13,9 +13,21 @@ use std::time::Duration; use url::Url; use utils::get_link_from_text; -#[rstest] -/// The index directory gets a trailing slash. -fn index_gets_trailing_slash(tmpdir: TempDir, port: u16) -> Result<(), Error> { +#[rstest( + input, + expected, + case("", "/"), + case("/dira", "/dira/"), + case("/dirb/", "/dirb/"), + case("/very/deeply/nested", "/very/deeply/nested/") +)] +/// Directories get a trailing slash. +fn index_gets_trailing_slash( + tmpdir: TempDir, + port: u16, + input: &str, + expected: &str, +) -> Result<(), Error> { let mut child = Command::cargo_bin("miniserve")? .arg("-p") .arg(port.to_string()) @@ -26,9 +38,8 @@ fn index_gets_trailing_slash(tmpdir: TempDir, port: u16) -> Result<(), Error> { sleep(Duration::from_secs(1)); let base_url = Url::parse(&format!("http://localhost:{}", port))?; - let expected_url = format!("{}", base_url); - let resp = reqwest::blocking::get(base_url.as_str())?; - assert_eq!(resp.url().as_str(), expected_url); + let resp = reqwest::blocking::get(base_url.join(input)?)?; + assert!(resp.url().as_str().ends_with(expected)); child.kill()?; |