test bad headers
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
use agent::Unit;
|
||||
use error::Error;
|
||||
use header::Header;
|
||||
use std::collections::HashMap;
|
||||
use std::io::{Cursor, Write};
|
||||
use std::sync::{Arc, Mutex};
|
||||
@@ -38,8 +37,7 @@ pub fn make_response(
|
||||
let mut buf: Vec<u8> = vec![];
|
||||
write!(&mut buf, "HTTP/1.1 {} {}\r\n", status, status_text).ok();
|
||||
for hstr in headers.iter() {
|
||||
let header = hstr.parse::<Header>().unwrap();
|
||||
write!(&mut buf, "{}: {}\r\n", header.name(), header.value()).ok();
|
||||
write!(&mut buf, "{}\r\n", hstr).ok();
|
||||
}
|
||||
write!(&mut buf, "\r\n").ok();
|
||||
buf.append(&mut body);
|
||||
|
||||
@@ -125,3 +125,16 @@ fn request_debug() {
|
||||
"Request(GET /my/page?q=z&foo=bar%20baz, [Authorization: abcdef])"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn non_ascii_header() {
|
||||
test::set_handler("/non_ascii_header", |_unit| {
|
||||
test::make_response(200, "OK", vec!["Wörse: Hädör"], vec![])
|
||||
});
|
||||
let resp = get("test://host/non_ascii_header")
|
||||
.set("Bäd", "Headör")
|
||||
.call();
|
||||
assert!(!resp.ok());
|
||||
assert_eq!(resp.status(), 500);
|
||||
assert_eq!(resp.status_text(), "Bad Header");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user