aboutsummaryrefslogtreecommitdiffstats
path: root/tests/header.rs
diff options
context:
space:
mode:
authorDean Li <deantvv@gmail.com>2021-02-22 06:11:18 +0000
committerDean Li <deantvv@gmail.com>2021-02-27 15:44:16 +0000
commit956ce204b4bda191c441fe5c4d385baa92c82b3e (patch)
tree8a77dee3301dca6e7a65a136b8d6e0b11034167f /tests/header.rs
parentAdd test for custom header (diff)
downloadminiserve-956ce204b4bda191c441fe5c4d385baa92c82b3e.tar.gz
miniserve-956ce204b4bda191c441fe5c4d385baa92c82b3e.zip
Multiple headers support for custom headers
Diffstat (limited to '')
-rw-r--r--tests/header.rs28
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(())
}