diff --git a/src/serialize/mod.rs b/src/serialize/mod.rs index 6501ca18..32913501 100644 --- a/src/serialize/mod.rs +++ b/src/serialize/mod.rs @@ -223,7 +223,7 @@ impl<'wr, Wr: Write> Serializer<'wr, Wr> { pub fn write_doctype(&mut self, name: &str) -> io::Result<()> { try!(self.writer.write_all(b"\n") } pub fn write_processing_instruction(&mut self, target: &str, data: &str) -> io::Result<()> { diff --git a/tests/serializer.rs b/tests/serializer.rs index 3e7b9ea9..ecbbd3f3 100644 --- a/tests/serializer.rs +++ b/tests/serializer.rs @@ -18,7 +18,7 @@ use std::default::Default; use std::borrow::ToOwned; use html5ever::driver::ParseOpts; -use html5ever::{parse_fragment, one_input, serialize}; +use html5ever::{parse_fragment, parse, one_input, serialize}; use html5ever_dom_sink::rcdom::RcDom; fn parse_and_serialize(input: String) -> String { @@ -97,3 +97,12 @@ test!(attr_ns_1, r#""#); test!(attr_ns_2, r#""#); test!(attr_ns_3, r#""#); test!(attr_ns_4, r#""#); + +#[test] +fn doctype() { + let dom: RcDom = parse(one_input("".to_owned()), ParseOpts::default()); + dom.document.borrow_mut().children.truncate(1); // Remove + let mut result = vec![]; + serialize(&mut result, &dom.document, Default::default()).unwrap(); + assert_eq!(String::from_utf8(result).unwrap(), "\n"); +}