diff options
author | Dean Li <deantvv@gmail.com> | 2021-02-22 06:11:18 +0000 |
---|---|---|
committer | Dean Li <deantvv@gmail.com> | 2021-02-27 15:44:16 +0000 |
commit | 956ce204b4bda191c441fe5c4d385baa92c82b3e (patch) | |
tree | 8a77dee3301dca6e7a65a136b8d6e0b11034167f /tests | |
parent | Add test for custom header (diff) | |
download | miniserve-956ce204b4bda191c441fe5c4d385baa92c82b3e.tar.gz miniserve-956ce204b4bda191c441fe5c4d385baa92c82b3e.zip |
Multiple headers support for custom headers
Diffstat (limited to 'tests')
-rw-r--r-- | tests/header.rs | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/tests/header.rs b/tests/header.rs index a0734e5..187730f 100644 --- a/tests/header.rs +++ b/tests/header.rs @@ -8,18 +8,17 @@ use std::process::{Command, Stdio}; use std::thread::sleep; use std::time::Duration; -#[rstest] -fn custom_header_set(tmpdir: TempDir, port: u16) -> Result<(), Error> { - let header_name = "x-info"; - let header_value = "123"; - let header_str = format!("{}: {}", header_name, header_value); - - let _ = Command::cargo_bin("miniserve")? +#[rstest(header, + case("x-info: 123".to_string()), + case("x-info1: 123\r\nx-info2: 345".to_string()) +)] +fn custom_header_set(tmpdir: TempDir, port: u16, header: String) -> Result<(), Error> { + let mut child = Command::cargo_bin("miniserve")? .arg(tmpdir.path()) .arg("-p") .arg(port.to_string()) .arg("--header") - .arg(header_str) + .arg(header.clone()) .stdout(Stdio::null()) .spawn()?; @@ -27,7 +26,18 @@ fn custom_header_set(tmpdir: TempDir, port: u16) -> Result<(), Error> { let resp = reqwest::blocking::get(format!("http://localhost:{}", port).as_str())?; - assert_eq!(resp.headers().get(header_name).unwrap(), header_value); + let mut headers = [httparse::EMPTY_HEADER; 4]; + let mut header = header.clone(); + header.push('\n'); + httparse::parse_headers(header.as_bytes(), &mut headers)?; + + for h in headers.iter() { + if h.name != httparse::EMPTY_HEADER.name { + assert_eq!(resp.headers().get(h.name).unwrap(), h.value); + } + } + + child.kill()?; Ok(()) } |