use skyscraper::{
html,
xpath::{self, grammar::data_model::AttributeNode},
};
#[test]
fn abbrev_attribute_step_should_match_given_attribute() {
// arrange
let text = r###"
"###;
let document = html::parse(&text).unwrap();
let xpath_item_tree = xpath::XpathItemTree::from(&document);
let xpath = xpath::parse("/html/@class").unwrap();
// act
let nodes = xpath.apply(&xpath_item_tree).unwrap();
// assert
assert_eq!(nodes.len(), 1);
let attributes: Vec<&AttributeNode> = nodes
.into_iter()
.map(|item| item.extract_into_node().extract_as_attribute_node())
.collect();
// assert attribute
{
let attribute = attributes
.iter()
.find(|x| x.name == "class")
.expect("missing id attribute");
assert_eq!(attribute.value, "bar")
}
}