diff --git a/src/test/mod.rs b/src/test/mod.rs index 0c77684..1d36aa7 100644 --- a/src/test/mod.rs +++ b/src/test/mod.rs @@ -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 = vec![]; write!(&mut buf, "HTTP/1.1 {} {}\r\n", status, status_text).ok(); for hstr in headers.iter() { - let header = hstr.parse::
().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); diff --git a/src/test/simple.rs b/src/test/simple.rs index 0867458..2c23d81 100644 --- a/src/test/simple.rs +++ b/src/test/simple.rs @@ -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"); +}