use roxmltree::*; // Document.getElementsByTagName() #[test] fn get_elements_by_tag_name() { let data = "\ Text "; let doc = Document::parse(data).unwrap(); let nodes: Vec = doc .descendants() .filter(|n| n.has_tag_name("rect")) .collect(); assert_eq!(nodes.len(), 2); } // Document.getElementsByTagNameNS() #[test] fn get_elements_by_tag_name_ns() { let data = "\ Text "; let doc = Document::parse(data).unwrap(); let nodes: Vec = doc .descendants() .filter(|n| n.has_tag_name(("http://www.w3.org/", "rect"))) .collect(); assert_eq!(nodes.len(), 1); } // ParentNode.childElementCount #[test] fn child_element_count() { let data = "\ "; let doc = Document::parse(data).unwrap(); let svg_elem = doc.root_element(); let count = svg_elem.children().filter(|n| n.is_element()).count(); assert_eq!(count, 3); } // ParentNode.children #[test] fn children() { let data = "\ "; let doc = Document::parse(data).unwrap(); let svg_elem = doc.root_element(); let count = svg_elem.children().filter(|n| n.is_element()).count(); assert_eq!(count, 3); } // ParentNode.firstElementChild #[test] fn first_element_child() { let data = "\ "; let doc = Document::parse(data).unwrap(); let svg_elem = doc.root_element(); let elem = svg_elem.first_element_child().unwrap(); assert!(elem.has_tag_name("rect")); // or let elem = svg_elem.children().find(|n| n.is_element()).unwrap(); assert!(elem.has_tag_name("rect")); } // ParentNode.lastElementChild #[test] fn last_element_child() { let data = "\ "; let doc = Document::parse(data).unwrap(); let svg_elem = doc.root_element(); let elem = svg_elem.last_element_child().unwrap(); assert!(elem.has_tag_name("rect")); // or let elem = svg_elem .children() .filter(|n| n.is_element()) .last() .unwrap(); assert!(elem.has_tag_name("rect")); } // Document.getElementById #[test] fn get_element_by_id() { let data = "\ "; let doc = Document::parse(data).unwrap(); let elem = doc .descendants() .find(|n| n.attribute("id") == Some("rect1")) .unwrap(); assert!(elem.has_tag_name("rect")); } // Node.ownerDocument #[test] fn owner_document() { let doc = Document::parse("").unwrap(); let _elem = doc.root_element(); } // Node.parentElement #[test] fn parent_element() { let data = "\ "; let doc = Document::parse(data).unwrap(); let rect = doc.descendants().find(|n| n.has_tag_name("rect")).unwrap(); assert!(rect.parent_element().unwrap().has_tag_name("svg")); // or assert!(rect .ancestors() .skip(1) .find(|n| n.is_element()) .unwrap() .has_tag_name("svg")); } // Node.contains #[test] fn contains() { let data = "\ "; let doc = Document::parse(data).unwrap(); let svg = doc.root_element(); let rect = svg.first_child().unwrap(); assert!(svg.descendants().any(|n| n == rect)); }