summaryrefslogtreecommitdiff
path: root/src/lowlevel/property.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lowlevel/property.rs')
-rw-r--r--src/lowlevel/property.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/lowlevel/property.rs b/src/lowlevel/property.rs
index bba693f..def204d 100644
--- a/src/lowlevel/property.rs
+++ b/src/lowlevel/property.rs
@@ -26,7 +26,10 @@ impl Property {
ensure_tag_name!(node, "property");
let name = get_attribute!(node, "name")?.to_owned();
- let property_type = get_attribute!(node, "type")?;
+ let property_type = match node.attribute("type") {
+ Some(ty) => ty,
+ None => "string",
+ };
// handle the case that 'string' value is stored in element content instead of value atribute
if property_type == "string" {
@@ -274,6 +277,18 @@ mod parse_property {
}
);
}
+
+ #[test]
+ fn string_without_explicit_type() {
+ crate::parse_property_test!(
+ Property,
+ r##"<property name="door" value="true"/>"##,
+ Property::String {
+ name: "door".to_owned(),
+ value: "true".to_owned()
+ }
+ );
+ }
}
#[cfg(test)]