yarte_dom 0.12.2

Markup parser
Documentation
#[macro_use]
#[cfg(feature = "wasm-app")]
pub mod dom;
pub mod dom_fmt;
mod serialize;
mod sink;

pub use self::dom_fmt::DOMFmt;

#[cfg(test)]
mod test {
    use crate::{
        serialize::serialize,
        sink::{parse_document, parse_fragment},
    };

    #[test]
    fn test_div() {
        let src = "<div attr=\"some\" \t class=\"any\"    \n>Hi!<br   /></div><div \
                   some7Na=\"hola\">hi</div>";
        let expected =
            "<div attr=\"some\" class=\"any\">Hi!<br></div><div some7na=\"hola\">hi</div>";

        let a = parse_fragment(src).unwrap();
        let mut writer = Vec::new();
        serialize(&mut writer, a.into(), Default::default()).expect("some serialize node");

        let html = String::from_utf8(writer).expect("");

        assert_eq!(expected, html);
    }

    #[test]
    fn test_table() {
        let src = "<table>yarteHashHTMLExpressionsATTT0x00000000</table>";
        let expected = "<table>yarteHashHTMLExpressionsATTT0x00000000</table>";

        let a = parse_fragment(src).unwrap();
        let mut writer = Vec::new();
        serialize(&mut writer, a.into(), Default::default()).expect("some serialize node");

        let html = String::from_utf8(writer).expect("");

        assert_eq!(expected, html);
    }

    #[test]
    fn test_attributes() {
        let src = "<div class=\"yarteHashHTMLExpressionsATTT0x00000000\"></div>";
        let expected = "<div class=\"yarteHashHTMLExpressionsATTT0x00000000\"></div>";

        let a = parse_fragment(src).unwrap();
        let mut writer = Vec::new();
        serialize(&mut writer, a.into(), Default::default()).expect("some serialize node");

        let html = String::from_utf8(writer).expect("");

        assert_eq!(expected, html);
    }

    #[test]
    fn test_document_err() {
        let src = "<div class=\"yarteHashHTMLExpressionsATTT0x00000000\"></div>";

        assert!(parse_document(src).is_err());
    }

    #[test]
    fn test_document_ok() {
        let src = "<html><body><div \
                   class=\"yarteHashHTMLExpressionsATTT0x00000000\"></div></body></html>";
        let expected = "<html><body><div \
                        class=\"yarteHashHTMLExpressionsATTT0x00000000\"></div></body></\
                        html>";

        let a = parse_document(src).unwrap();
        let mut writer = Vec::new();
        serialize(&mut writer, a.into(), Default::default()).expect("some serialize node");

        let html = String::from_utf8(writer).expect("");

        assert_eq!(expected, html);
    }

    #[test]
    fn test_document_ok_doctype() {
        let src = "<!DOCTYPE html><html><body><div \
                   class=\"yarteHashHTMLExpressionsATTT0x00000000\"></div></body></html>";
        let expected = "<!DOCTYPE html><html><body><div \
                        class=\"yarteHashHTMLExpressionsATTT0x00000000\"></div></body></\
                        html>";

        let a = parse_document(src).unwrap();
        let mut writer = Vec::new();
        serialize(&mut writer, a.into(), Default::default()).expect("some serialize node");

        let html = String::from_utf8(writer).expect("");

        assert_eq!(expected, html);
    }

    #[test]
    fn test_document_ok_table() {
        let src = "<html><body><table>yarteHashHTMLExpressionsATTT0x00000000</table></\
                   body></html>";
        let expected = "<html><body><table>yarteHashHTMLExpressionsATTT0x00000000</table></\
                        body></html>";

        let a = parse_document(src).unwrap();
        let mut writer = Vec::new();
        serialize(&mut writer, a.into(), Default::default()).expect("some serialize node");

        let html = String::from_utf8(writer).expect("");

        assert_eq!(expected, html);
    }

    #[test]
    fn test_document_ok_head() {
        let src = "<html><head><title>yartehashhtmlexpressionsattt0x00000000</title></\
                   head><body><div attr=\"some\" \t class=\"any\"    \n>Hi!<br   /></div><div \
                   some7Na=\"hola\">hi</div></body></html>";
        let expected = "<html><head><title>yartehashhtmlexpressionsattt0x00000000</title></\
                        head><body><div attr=\"some\" class=\"any\">Hi!<br></div><div \
                        some7na=\"hola\">hi</div></body></html>";

        let a = parse_document(src).unwrap();
        let mut writer = Vec::new();
        serialize(&mut writer, a.into(), Default::default()).expect("some serialize node");

        let html = String::from_utf8(writer).expect("");

        assert_eq!(expected, html);
    }
}