2006-12-11 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Mon, 11 Dec 2006 02:37:59 +0000 (02:37 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Mon, 11 Dec 2006 02:37:59 +0000 (02:37 -0000)
* XmlDocument.cs : call overriden CreateAttribute() when loading from
  XmlReader.

* XmlDocumentTests.cs : make sure to call overriden CreateAttribute()
  when loading from XmlReader.

svn path=/trunk/mcs/; revision=69290

mcs/class/System.XML/System.Xml/ChangeLog
mcs/class/System.XML/System.Xml/XmlDocument.cs
mcs/class/System.XML/Test/System.Xml/ChangeLog
mcs/class/System.XML/Test/System.Xml/XmlDocumentTests.cs

index 6475fbd2bf2c4932114aef8121e300f2996e7605..bf7f61605f4e328f7275b3dc6e544382169a9302 100644 (file)
@@ -1,3 +1,8 @@
+2006-12-11  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDocument.cs : call overriden CreateAttribute() when loading from
+         XmlReader.
+
 2006-12-05  Atsushi Enomoto <atsushi@ximian.com>
 
        * XmlReader.cs : new 2.0 MoveToAttribute(int) failed to move to the
index fa13f3828ace69376ea95203163e7ff2a3c1bc16..c214a9f56dd0d7e14ea8d38e968be88287f45126 100644 (file)
@@ -783,7 +783,7 @@ namespace System.Xml
                                reader.MoveToFirstAttribute ();
                        else if (reader.NodeType != XmlNodeType.Attribute)
                                throw new InvalidOperationException (MakeReaderErrorMessage ("bad position to read attribute.", reader));
-                       XmlAttribute attribute = CreateAttribute (reader.Prefix, reader.LocalName, reader.NamespaceURI, false, false); // different NameTable
+                       XmlAttribute attribute = CreateAttribute (reader.Prefix, reader.LocalName, reader.NamespaceURI);
 #if NET_2_0
                        if (reader.SchemaInfo != null)
                                SchemaInfo = new XmlSchemaInfo (reader.SchemaInfo);
index 073bf88842c396d345970375642ad049973150e3..e478fa109b41b15d95f48f0a229fefab4e0b7b08 100644 (file)
@@ -1,3 +1,8 @@
+2006-12-11  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDocumentTests.cs : make sure to call overriden CreateAttribute()
+         when loading from XmlReader.
+
 2006-12-05  Atsushi Enomoto <atsushi@ximian.com>
 
        * XmlNodeTests.cs : added another test for GetPrefixOfNamespace().
index ca2fa6ea2753b38b255f404d306b188f161f5282..1940e2b8bc1eea79451933022408fe6952c1961d 100644 (file)
@@ -1183,5 +1183,22 @@ namespace MonoTests.System.Xml
                        doc.LoadXml (xml);
                        XmlNodeList nodeList = doc.GetElementsByTagName ("Signature");
                }
+
+               class MyXmlDocument : XmlDocument
+               {
+                       public override XmlAttribute CreateAttribute (string p, string l, string n)
+                       {
+                               return base.CreateAttribute (p, "hijacked", n);
+                       }
+               }
+
+               [Test]
+               public void UseOverridenCreateAttribute ()
+               {
+                       XmlDocument doc = new MyXmlDocument ();
+                       doc.LoadXml ("<root a='sane' />");
+                       AssertNotNull (doc.DocumentElement.GetAttributeNode ("hijacked"));
+                       AssertNull (doc.DocumentElement.GetAttributeNode ("a"));
+               }
        }
 }