diff --git a/src/client/connection/response/success.rs b/src/client/connection/response/success.rs index 6ead866..6316864 100644 --- a/src/client/connection/response/success.rs +++ b/src/client/connection/response/success.rs @@ -28,6 +28,11 @@ impl Success { #[test] fn test() { - // let default = Success::parse("20 text/gemini; charset=utf-8; lang=en\r\n".as_bytes()); - todo!() + match Success::parse(format!("20 text/gemini; charset=utf-8; lang=en\r\n").as_bytes()).unwrap() + { + Success::Default(default) => { + assert_eq!(default.header.mime().unwrap(), "text/gemini"); + assert_eq!(default.content, None) + } + } } diff --git a/src/client/connection/response/success/default.rs b/src/client/connection/response/success/default.rs index 90ac8f5..5d629b8 100644 --- a/src/client/connection/response/success/default.rs +++ b/src/client/connection/response/success/default.rs @@ -20,8 +20,19 @@ impl Default { } let header = Header::parse(buffer).map_err(Error::Header)?; Ok(Self { - content: buffer.get(header.len() + 1..).map(|v| v.to_vec()), + content: buffer + .get(header.len() + 1..) + .filter(|s| !s.is_empty()) + .map(|v| v.to_vec()), header, }) } } + +#[test] +fn test() { + let default = + Default::parse(format!("20 text/gemini; charset=utf-8; lang=en\r\n").as_bytes()).unwrap(); + assert_eq!(default.header.mime().unwrap(), "text/gemini"); + assert_eq!(default.content, None) +}