add tests for source-code extraction from xml
This commit is contained in:
parent
e17699d50f
commit
0d2ee78f91
1 changed files with 44 additions and 0 deletions
|
@ -240,3 +240,47 @@ impl<'a, 'b> From<roxmltree::Node<'a, 'b>> for XmlNode<'a, 'b> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
#[test]
|
||||
pub fn test_parse_sourcecode_singleline() {
|
||||
let input = "<something>whatever</something>";
|
||||
let document = roxmltree::Document::parse(&input).unwrap();
|
||||
let root_node = XmlNode::from(document.root_element());
|
||||
assert_eq!(
|
||||
root_node.as_element().unwrap().only_child().unwrap().as_text_or_sourcecode(),
|
||||
"whatever".to_string()
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
pub fn test_parse_sourcecode_multiline() {
|
||||
let input = r#"<something>
|
||||
this is
|
||||
multiline
|
||||
</something>"#;
|
||||
let document = roxmltree::Document::parse(&input).unwrap();
|
||||
let root_node = XmlNode::from(document.root_element());
|
||||
assert_eq!(
|
||||
root_node.as_element().unwrap().only_child().unwrap().as_text_or_sourcecode(),
|
||||
"this is\nmultiline".to_string()
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
pub fn test_parse_sourcecode_code() {
|
||||
let input = r#"<something>
|
||||
if [ "this" == '$that' ]; then
|
||||
echo `hi`
|
||||
fi
|
||||
</something>"#;
|
||||
let document = roxmltree::Document::parse(&input).unwrap();
|
||||
let root_node = XmlNode::from(document.root_element());
|
||||
assert_eq!(
|
||||
root_node.as_element().unwrap().only_child().unwrap().as_text_or_sourcecode(),
|
||||
"if [ \"this\" == '$that' ]; then\necho `hi`\nfi".to_string()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue