minidom: clarify meaning of Element.name (being the local name)

Maxime “pep” Buquet created

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Change summary

minidom-rs/src/element.rs | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)

Detailed changes

minidom-rs/src/element.rs 🔗

@@ -207,8 +207,7 @@ impl Element {
         )
     }
 
-    /// Returns a reference to the name of this element.
-    // TODO: rename local_name
+    /// Returns a reference to the local name of this element (that is, without a possible prefix).
     pub fn name(&self) -> &str {
         &self.name
     }
@@ -1079,6 +1078,18 @@ mod tests {
         assert_eq!(elem.unwrap(), elem2);
     }
 
+    #[test]
+    fn test_from_reader_split_prefix() {
+        let xml = "<foo:bar xmlns:foo='ns1'/>";
+        let mut reader = EventReader::from_str(xml);
+        let elem = Element::from_reader(&mut reader).unwrap();
+
+        assert_eq!(elem.name(), String::from("bar"));
+        assert_eq!(elem.ns(), String::from("ns1"));
+        // Ensure the prefix is properly added to the store
+        assert_eq!(elem.prefixes.get(&String::from("ns1")), Some(Some(String::from("foo"))));
+    }
+
     #[test]
     fn parses_spectest_xml() {
         // From: https://gitlab.com/lumi/minidom-rs/issues/8