test bad headers
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
use agent::Unit;
|
use agent::Unit;
|
||||||
use error::Error;
|
use error::Error;
|
||||||
use header::Header;
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::io::{Cursor, Write};
|
use std::io::{Cursor, Write};
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
@@ -38,8 +37,7 @@ pub fn make_response(
|
|||||||
let mut buf: Vec<u8> = vec![];
|
let mut buf: Vec<u8> = vec![];
|
||||||
write!(&mut buf, "HTTP/1.1 {} {}\r\n", status, status_text).ok();
|
write!(&mut buf, "HTTP/1.1 {} {}\r\n", status, status_text).ok();
|
||||||
for hstr in headers.iter() {
|
for hstr in headers.iter() {
|
||||||
let header = hstr.parse::<Header>().unwrap();
|
write!(&mut buf, "{}\r\n", hstr).ok();
|
||||||
write!(&mut buf, "{}: {}\r\n", header.name(), header.value()).ok();
|
|
||||||
}
|
}
|
||||||
write!(&mut buf, "\r\n").ok();
|
write!(&mut buf, "\r\n").ok();
|
||||||
buf.append(&mut body);
|
buf.append(&mut body);
|
||||||
|
|||||||
@@ -125,3 +125,16 @@ fn request_debug() {
|
|||||||
"Request(GET /my/page?q=z&foo=bar%20baz, [Authorization: abcdef])"
|
"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