aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorSven-Hendrik Haase <svenstaro@gmail.com>2021-02-28 00:36:16 +0000
committerSven-Hendrik Haase <svenstaro@gmail.com>2021-02-28 00:36:16 +0000
commit31e2be249e6563abd755469cf8c24920d6481990 (patch)
tree963d0b07e5d01c726d2330ef18887eee3410aa18 /tests
parentAdd CHANGELOG entry for custom headers (diff)
downloadminiserve-31e2be249e6563abd755469cf8c24920d6481990.tar.gz
miniserve-31e2be249e6563abd755469cf8c24920d6481990.zip
Re-do the way setting multiple headers works
Diffstat (limited to 'tests')
-rw-r--r--tests/header.rs28
1 files changed, 11 insertions, 17 deletions
diff --git a/tests/header.rs b/tests/header.rs
index 187730f..774e5ef 100644
--- a/tests/header.rs
+++ b/tests/header.rs
@@ -8,33 +8,27 @@ use std::process::{Command, Stdio};
use std::thread::sleep;
use std::time::Duration;
-#[rstest(header,
- case("x-info: 123".to_string()),
- case("x-info1: 123\r\nx-info2: 345".to_string())
+#[rstest(headers,
+ case(vec!["x-info: 123".to_string()]),
+ case(vec!["x-info1: 123".to_string(), "x-info2: 345".to_string()])
)]
-fn custom_header_set(tmpdir: TempDir, port: u16, header: String) -> Result<(), Error> {
+fn custom_header_set(tmpdir: TempDir, port: u16, headers: Vec<String>) -> Result<(), Error> {
let mut child = Command::cargo_bin("miniserve")?
.arg(tmpdir.path())
.arg("-p")
.arg(port.to_string())
- .arg("--header")
- .arg(header.clone())
- .stdout(Stdio::null())
- .spawn()?;
+ .args(headers.iter().flat_map(|h| vec!["--header", h]))
+ .stdout(Stdio::null()).spawn()?;
sleep(Duration::from_secs(1));
let resp = reqwest::blocking::get(format!("http://localhost:{}", port).as_str())?;
- 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);
- }
+ for header in headers {
+ let mut header_split = header.splitn(2, ':');
+ let header_name = header_split.next().unwrap();
+ let header_value = header_split.next().unwrap().trim();
+ assert_eq!(resp.headers().get(header_name).unwrap(), header_value);
}
child.kill()?;