Skip to content

Commit 6b0e66b

Browse files
committed
test: parse a header with no after colon
1 parent 140faf3 commit 6b0e66b

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/lib.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1510,6 +1510,20 @@ mod tests {
15101510
}
15111511
}
15121512

1513+
req! {
1514+
// test the avx2 parsing
1515+
test_request_header_no_space_after_colon,
1516+
b"GET / HTTP/1.1\r\nUser-Agent:omg-no-space1234567890some1234567890agent1234567890\r\n\r\n",
1517+
|req| {
1518+
assert_eq!(req.method.unwrap(), "GET");
1519+
assert_eq!(req.path.unwrap(), "/");
1520+
assert_eq!(req.version.unwrap(), 1);
1521+
assert_eq!(req.headers.len(), 1);
1522+
assert_eq!(req.headers[0].name, "User-Agent");
1523+
assert_eq!(req.headers[0].value, &b"omg-no-space1234567890some1234567890agent1234567890"[..]);
1524+
}
1525+
}
1526+
15131527
req! {
15141528
test_request_headers_max,
15151529
b"GET / HTTP/1.1\r\nA: A\r\nB: B\r\nC: C\r\nD: D\r\n\r\n",
@@ -2586,4 +2600,20 @@ mod tests {
25862600
assert_eq!(response.headers[0].name, "Space-Before-Header");
25872601
assert_eq!(response.headers[0].value, &b"hello there"[..]);
25882602
}
2603+
2604+
#[test]
2605+
fn test_no_space_after_colon() {
2606+
let mut headers = [EMPTY_HEADER; 1];
2607+
let mut response = Response::new(&mut headers[..]);
2608+
let result = crate::ParserConfig::default()
2609+
.parse_response(&mut response, b"HTTP/1.1 200 OK\r\nfoo:bar\r\n\r\n");
2610+
2611+
assert_eq!(result, Ok(Status::Complete(28)));
2612+
assert_eq!(response.version.unwrap(), 1);
2613+
assert_eq!(response.code.unwrap(), 200);
2614+
assert_eq!(response.reason.unwrap(), "OK");
2615+
assert_eq!(response.headers.len(), 1);
2616+
assert_eq!(response.headers[0].name, "foo");
2617+
assert_eq!(response.headers[0].value, &b"bar"[..]);
2618+
}
25892619
}

0 commit comments

Comments
 (0)