use xot::{xmlname, xmlname::NameStrInfo, NameId, Xot}; #[test] fn test_owned() { let name = xmlname::OwnedName::new( "local".to_string(), "http://example.com".to_string(), "prefix".to_string(), ); assert_eq!(name.local_name(), "local"); assert_eq!(name.namespace(), "http://example.com"); assert_eq!(name.prefix(), "prefix"); assert_eq!(name.full_name(), "prefix:local") } #[test] fn test_ref() { let name = xmlname::OwnedName::new( "local".to_string(), "http://example.com".to_string(), "prefix".to_string(), ); let mut xot = Xot::new(); let namespace_id = xot.add_namespace("http://example.com"); let name_id = xot.add_name_ns("local", namespace_id); let prefix_id = xot.add_prefix("prefix"); let name_ref = name.to_ref(&mut xot); assert_eq!(name_ref.local_name(), "local"); assert_eq!(name_ref.namespace(), "http://example.com"); assert_eq!(name_ref.prefix(), "prefix"); assert_eq!(name_ref.full_name(), "prefix:local"); assert_eq!(name_ref.to_owned(), name); assert_eq!(name_ref.name_id(), name_id); assert_eq!(name_ref.namespace_id(), namespace_id); assert_eq!(name_ref.prefix_id(), prefix_id); let name_ref_name_id: NameId = name_ref.into(); assert_eq!(name_ref_name_id, name_id); } #[test] fn test_create_element() { let mut xot = Xot::new(); let name = xmlname::CreateName::name(&mut xot, "local"); let local = xot.new_element(name); assert_eq!(xot.to_string(local).unwrap(), ""); } #[test] fn test_create_element_namespace() { let mut xot = Xot::new(); let namespace = xmlname::CreateNamespace::new(&mut xot, "ex", "http://example.com"); let name = xmlname::CreateName::namespaced(&mut xot, "local", &namespace); let local = xot.new_element(name); xot.append_namespace(local, &namespace).unwrap(); assert_eq!( xot.to_string(local).unwrap(), r#""# ); } #[test] fn test_create_attribute_node() { let mut xot = Xot::new(); let name = xmlname::CreateName::name(&mut xot, "local"); let doc = xmlname::CreateName::name(&mut xot, "doc"); let doc_el = xot.new_element(doc); let local = xot.new_attribute_node(name, "value".to_string()); xot.append_attribute_node(doc_el, local).unwrap(); assert_eq!(xot.to_string(doc_el).unwrap(), r#""#); } #[test] fn test_create_attribute() { let mut xot = Xot::new(); let el_name = xmlname::CreateName::name(&mut xot, "local"); let attr_name = xmlname::CreateName::name(&mut xot, "attr"); let doc_el = xot.new_element(el_name); xot.attributes_mut(doc_el) .insert(attr_name, "value".to_string()); assert_eq!(xot.to_string(doc_el).unwrap(), r#""#); }