diff options
Diffstat (limited to 'src/lowlevel/property.rs')
-rw-r--r-- | src/lowlevel/property.rs | 17 |
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)] |