use xml_dom::level2::convert::{ as_attribute_mut, as_document, as_document_fragment_mut, as_element_mut, }; use xml_dom::level2::ext::convert::as_document_decl_mut; use xml_dom::level2::ext::dom_impl as ext_dom_impl; use xml_dom::level2::ext::{XmlDecl, XmlVersion}; use xml_dom::level2::get_implementation; pub mod common; #[test] fn test_display_element() { let document_node = common::create_empty_rdf_document(); let document = as_document(&document_node).unwrap(); common::sub_test("test_display_element", "element_only"); let mut test_node = document.create_element("test").unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); common::sub_test("test_display_element", "element_with_attribute"); { let element = as_element_mut(&mut test_node).unwrap(); let attribute_node = document.create_attribute_with("test", "data").unwrap(); assert!(element.set_attribute_node(attribute_node).is_ok()); } let result = format!("{}", test_node); assert_eq!(result, ""); common::sub_test( "test_display_element", "element_with_attribute_and_children", ); { let element = as_element_mut(&mut test_node).unwrap(); let attribute_node = document .create_attribute_ns(common::DC_NS, "dc:creator") .unwrap(); assert!(element.set_attribute_node(attribute_node).is_ok()); } let result = format!("{}", test_node); assert_eq!(result.len(), 39); assert!(result.starts_with("")); } #[test] fn test_display_attribute() { let document_node = common::create_empty_rdf_document(); let document = as_document(&document_node).unwrap(); let mut test_node = document.create_attribute("test").unwrap(); let attribute = as_attribute_mut(&mut test_node).unwrap(); assert!(attribute.set_value("test-data").is_ok()); let result = format!("{}", test_node); assert_eq!(result, "test=\"test-data\""); let mut test_node = document .create_attribute_ns(common::DC_NS, "dc:creator") .unwrap(); let attribute = as_attribute_mut(&mut test_node).unwrap(); assert!(attribute.set_value("Rose Bush").is_ok()); let result = format!("{}", test_node); assert_eq!(result, "dc:creator=\"Rose Bush\""); } #[test] fn test_display_text() { let document_node = common::create_empty_rdf_document(); let document = as_document(&document_node).unwrap(); let test_node = document.create_text_node("this is textual test data"); let result = format!("{}", test_node); assert_eq!(result, "this is textual test data"); } #[test] fn test_display_cdata() { let document_node = common::create_empty_rdf_document(); let document = as_document(&document_node).unwrap(); let test_node = document .create_cdata_section("this is textual test data") .unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); } #[test] fn test_display_entity_reference() { let document_node = common::create_empty_rdf_document(); let document = as_document(&document_node).unwrap(); let test_node = document.create_entity_reference("amp").unwrap(); let result = format!("{}", test_node); assert_eq!(result, "&"); } #[test] fn test_display_processing_instruction() { let document_node = common::create_empty_rdf_document(); let document = as_document(&document_node).unwrap(); let test_node = document.create_processing_instruction("foo", None).unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); let test_node = document .create_processing_instruction("foo", Some("version=\"1.0\"")) .unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); } #[test] fn test_display_comment() { let document_node = common::create_empty_rdf_document(); let document = as_document(&document_node).unwrap(); let test_node = document.create_comment("this is textual test data"); let result = format!("{}", test_node); assert_eq!(result, ""); } #[test] fn test_display_document() { let implementation = get_implementation(); let document_type = implementation .create_document_type( "html", Some("-//W3C//DTD XHTML 1.0 Transitional//EN"), Some("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"), ) .unwrap(); let test_node = implementation .create_document( Some("http://www.w3.org/1999/xhtml"), Some("html"), Some(document_type), ) .unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); } #[test] fn test_display_document_with_decl() { let implementation = get_implementation(); let document_type = implementation .create_document_type( "html", Some("-//W3C//DTD XHTML 1.0 Transitional//EN"), Some("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"), ) .unwrap(); let mut test_node = implementation .create_document( Some("http://www.w3.org/1999/xhtml"), Some("html"), Some(document_type), ) .unwrap(); let mut_document = as_document_decl_mut(&mut test_node).unwrap(); let xml_decl = XmlDecl::new(XmlVersion::V11, Some("UTF-8".to_string()), None); let result = mut_document.set_xml_declaration(xml_decl); assert!(result.is_ok()); let result = format!("{}", test_node); assert_eq!(result, ""); } #[test] fn test_display_document_type() { let implementation = get_implementation(); let test_node = implementation .create_document_type( "html", Some("-//W3C//DTD XHTML 1.0 Transitional//EN"), Some("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"), ) .unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); } #[test] fn test_display_document_fragment() { let implementation = get_implementation(); let document_node = implementation .create_document(Some(common::RDF_NS), Some("rdf:RDF"), None) .unwrap(); let document = as_document(&document_node).unwrap(); let mut test_node = document.create_document_fragment().unwrap(); let mut_fragment = as_document_fragment_mut(&mut test_node).unwrap(); for name in ["one", "two", "three"] { let node = document.create_element(name).unwrap(); let _safe_to_ignore = mut_fragment.append_child(node).unwrap(); } let result = format!("{}", test_node); assert_eq!( result, "]]>" ); } #[test] fn test_display_entity() { let implementation = get_implementation(); let document_node = implementation .create_document(Some(common::RDF_NS), Some("rdf:RDF"), None) .unwrap(); let test_node = ext_dom_impl::create_internal_entity(document_node.clone(), "name", "My Name").unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); common::sub_test( "test_display_entity", "create_entity(node, name, Some, None)", ); let test_node = ext_dom_impl::create_entity(document_node.clone(), "name", Some("file-name.xml"), None) .unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); common::sub_test( "test_display_entity", "create_entity(node, name, None, Some)", ); let test_node = ext_dom_impl::create_entity(document_node.clone(), "name", None, Some("file-name.xml")) .unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); common::sub_test( "test_display_entity", "create_entity(node, name, Some, Some)", ); let test_node = ext_dom_impl::create_entity( document_node.clone(), "name", Some("foo-bar"), Some("file-name.xml"), ) .unwrap(); let result = format!("{}", test_node); assert_eq!( result, "" ); // ------------------------------------------------------------ /* let mut test_node = dom_impl::create_entity( document_node.clone(), "name", Some("foo-bar"), Some("file-name.xml"), ) .unwrap(); { if let Extension::Entity { i_notation_name, .. } = &mut test_node.i_extension { *i_notation_name = Some("GIF".to_string()); } } let result = format!("{}", test_node); assert_eq!( result, "" ); */ } #[test] fn test_display_notation() { let implementation = get_implementation(); let document_node = implementation .create_document(Some(common::RDF_NS), Some("rdf:RDF"), None) .unwrap(); let test_node = ext_dom_impl::create_notation(document_node.clone(), "name", Some("file-name.xml"), None) .unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); // ------------------------------------------------------------ let test_node = ext_dom_impl::create_notation(document_node.clone(), "name", None, Some("file-name.xml")) .unwrap(); let result = format!("{}", test_node); assert_eq!(result, ""); // ------------------------------------------------------------ let test_node = ext_dom_impl::create_notation( document_node.clone(), "name", Some("foo-bar"), Some("file-name.xml"), ) .unwrap(); let result = format!("{}", test_node); assert_eq!( result, "" ); }