move rendering of headers to the Headers object
This commit is contained in:
		| @@ -17,7 +17,7 @@ use std::sync::RWLock; | ||||
| use uany::{UncheckedAnyDowncast, UncheckedAnyMutDowncast}; | ||||
| use typeable::Typeable; | ||||
|  | ||||
| use http::read_header; | ||||
| use http::{read_header, LineEnding}; | ||||
| use {HttpResult}; | ||||
|  | ||||
| /// Common Headers | ||||
| @@ -244,11 +244,10 @@ impl Headers { | ||||
|  | ||||
| impl fmt::Show for Headers { | ||||
|     fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { | ||||
|         try!("Headers {\n".fmt(fmt)); | ||||
|         for (k, v) in self.iter() { | ||||
|             try!(write!(fmt, "\t{}: {}\n", k, v)); | ||||
|             try!(write!(fmt, "{}: {}{}", k, v, LineEnding)); | ||||
|         } | ||||
|         "}".fmt(fmt) | ||||
|         Ok(()) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -349,7 +348,7 @@ mod tests { | ||||
|     use mime::{Mime, Text, Plain}; | ||||
|     use super::CaseInsensitive; | ||||
|     use super::{Headers, Header}; | ||||
|     use super::common::{ContentLength, ContentType, Accept}; | ||||
|     use super::common::{ContentLength, ContentType, Accept, Host}; | ||||
|  | ||||
|     fn mem(s: &str) -> MemReader { | ||||
|         MemReader::new(s.as_bytes().to_vec()) | ||||
| @@ -443,5 +442,20 @@ mod tests { | ||||
|         *headers.get_mut::<ContentLength>().unwrap() = ContentLength(20); | ||||
|         assert_eq!(*headers.get::<ContentLength>().unwrap(), ContentLength(20)); | ||||
|     } | ||||
|  | ||||
|     #[test] | ||||
|     fn test_headers_show() { | ||||
|         let mut headers = Headers::new(); | ||||
|         headers.set(ContentLength(15)); | ||||
|         headers.set(Host("foo.bar".into_string())); | ||||
|  | ||||
|         let s = headers.to_string(); | ||||
|         // hashmap's iterators have arbitrary order, so we must sort first | ||||
|         let mut pieces = s[].split_str("\r\n").collect::<Vec<&str>>(); | ||||
|         pieces.sort(); | ||||
|         let s = pieces.into_iter().rev().collect::<Vec<&str>>().connect("\r\n"); | ||||
|         assert_eq!(s[], "Host: foo.bar\r\nContent-Length: 15\r\n"); | ||||
|  | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user