[gxml] Fixed parse string for GomElement



commit 0039e0a449e8be74e6d29974fb739139d2dd2f45
Author: Daniel Espinosa <esodan gmail com>
Date:   Fri Jan 20 14:48:24 2017 -0600

    Fixed parse string for GomElement

 gxml/XParser.vala              |    8 ++++----
 test/GomSerializationTest.vala |   15 ++++++++-------
 2 files changed, 12 insertions(+), 11 deletions(-)
---
diff --git a/gxml/XParser.vala b/gxml/XParser.vala
index e8021b6..932433b 100644
--- a/gxml/XParser.vala
+++ b/gxml/XParser.vala
@@ -114,10 +114,12 @@ public class GXml.XParser : Object, GXml.Parser {
         GLib.message ("Current Node's name: "+current_node_name ().down ());
         GLib.message ("Current Node is Element: "+current_is_element ().to_string ());
 #endif
-        break;
         if (current_is_element ()
             &&
             (current_node_name ().down () == (node as DomElement).local_name.down ())) {
+#if DEBUG
+          GLib.message ("Found Element node: "+current_node_name ());
+#endif
           break;
         }
         if (!current_is_document ()) {
@@ -125,10 +127,8 @@ public class GXml.XParser : Object, GXml.Parser {
         }
         if (!move_next_node ()) break;
       }
-#if DEBUG
-        GLib.message ("Found Element node: "+current_node_name ());
-#endif
       read_element (node as DomElement);
+      if (!move_next_node ()) return;
     }
 #if DEBUG
         GLib.message ("Parsing child nodes of: "+node.node_name);
diff --git a/test/GomSerializationTest.vala b/test/GomSerializationTest.vala
index e06d10b..9ae0006 100644
--- a/test/GomSerializationTest.vala
+++ b/test/GomSerializationTest.vala
@@ -562,12 +562,14 @@ class GomSerializationTest : GXmlTest  {
     Test.add_func ("/gxml/gom-serialization/read/bad-node-name", () => {
       var b = new Book ();
       b.read_from_string ("<chair name=\"Tall\"/>");
-      GLib.message ("Book name ="+b.name);
+#if DEBUG
+      var parser = new XParser (b);
+      GLib.message ("Read: "+parser.write_string ());
+#endif
       assert (b.name == null);
-      assert (b.child_nodes.size == 1);
-      var n = b.child_nodes.item (0);
-      assert (n != null);
-      assert (n.node_name == "chair");
+      assert (b.child_nodes.size == 0);
+      assert (b.owner_document.document_element != null);
+      assert (b.owner_document.document_element.node_name == "Book");
     });
     Test.add_func ("/gxml/gom-serialization/read/object-property", () => {
     try {
@@ -575,8 +577,7 @@ class GomSerializationTest : GXmlTest  {
       string s = b.to_string ();
       GLib.message ("doc:"+s);
       assert ("<BookRegister Year=\"0\"/>" in s);
-      var parser = new XParser (b);
-      parser.read_string ("<BookRegister><Book/></BookRegister>", null);
+      b.read_from_string ("<bookRegister><Book/></bookRegister>");
       s = b.to_string ();
       GLib.message ("doc:"+s);
       assert ("<BookRegister Year=\"0\"><Book/></BookRegister>" in s);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]