2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
authorAtsushi Eno <atsushieno@gmail.com>
Mon, 13 Oct 2003 03:37:42 +0000 (03:37 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Mon, 13 Oct 2003 03:37:42 +0000 (03:37 -0000)
* XmlElementTests.cs : Added more tests on
  RemoveDoesNotRemoveDefaultAttributes().
* XmlNodeTests.cs : Added Normalize(), GetNamespaceOfPrefix() and
  GetNamespaceOfPrefixNullArg().
* XmlWriterTests.cs : Added WriteNodeNone().

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

mcs/class/System.XML/Test/System.Xml/ChangeLog
mcs/class/System.XML/Test/System.Xml/XmlElementTests.cs
mcs/class/System.XML/Test/System.Xml/XmlNodeTests.cs
mcs/class/System.XML/Test/System.Xml/XmlWriterTests.cs

index 71216f9d6409472f41d6956184db18ae0ca4ff1a..e4f6d9d262e4c77f9962f1e16153fea15b3092a2 100644 (file)
@@ -1,3 +1,11 @@
+2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+       * XmlElementTests.cs : Added more tests on 
+         RemoveDoesNotRemoveDefaultAttributes().
+       * XmlNodeTests.cs : Added Normalize(), GetNamespaceOfPrefix() and
+         GetNamespaceOfPrefixNullArg().
+       * XmlWriterTests.cs : Added WriteNodeNone().
+
 2003-10-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
 
        * XmlConvertTests.cs : patch by Jonathan Kessler. Added more test
index ed9b3ea6fb4d23198af154b6e278e898d11dd14a..49df8d408dcb4d90186a4d1567946459910f84ed 100644 (file)
@@ -250,6 +250,7 @@ namespace MonoTests.System.Xml
                        string xml = dtd + "<root bar='baz' />";
                        XmlValidatingReader xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null);
                        document.Load (xvr);
+                       // RemoveAll
                        AssertNotNull (document.DocumentElement);
                        AssertEquals (2, document.DocumentElement.Attributes.Count);
                        AssertEquals ("baz", document.DocumentElement.GetAttribute ("bar"));
@@ -258,6 +259,42 @@ namespace MonoTests.System.Xml
                        AssertEquals (1, document.DocumentElement.Attributes.Count);
                        AssertEquals ("def", document.DocumentElement.GetAttribute ("foo"));
                        AssertEquals (String.Empty, document.DocumentElement.GetAttribute ("bar"));
+
+                       // RemoveAllAttributes
+                       xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null);
+                       document.Load (xvr);
+                       document.DocumentElement.RemoveAllAttributes ();
+                       AssertEquals (1, document.DocumentElement.Attributes.Count);
+
+                       // RemoveAttribute(name)
+                       xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null);
+                       document.Load (xvr);
+                       document.DocumentElement.RemoveAttribute ("foo");
+                       AssertEquals (2, document.DocumentElement.Attributes.Count);
+
+                       // RemoveAttribute(name, ns)
+                       xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null);
+                       document.Load (xvr);
+                       document.DocumentElement.RemoveAttribute ("foo", String.Empty);
+                       AssertEquals (2, document.DocumentElement.Attributes.Count);
+
+                       // RemoveAttributeAt
+                       xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null);
+                       document.Load (xvr);
+                       document.DocumentElement.RemoveAttributeAt (1);
+                       AssertEquals (2, document.DocumentElement.Attributes.Count);
+
+                       // RemoveAttributeNode
+                       xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null);
+                       document.Load (xvr);
+                       document.DocumentElement.RemoveAttributeNode (document.DocumentElement.Attributes [1]);
+                       AssertEquals (2, document.DocumentElement.Attributes.Count);
+
+                       // RemoveAttributeNode(name, ns)
+                       xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null);
+                       document.Load (xvr);
+                       document.DocumentElement.RemoveAttributeNode ("foo", String.Empty);
+                       AssertEquals (2, document.DocumentElement.Attributes.Count);
                }
 
                [Test]
index 277e9d81590d8096fcfdc0372207b940babac363..e983c57c0a6aed436f3147e7de686d689d7be9a7 100644 (file)
@@ -120,6 +120,33 @@ namespace MonoTests.System.Xml
 */
                }
 
+               [Test]
+               public void GetNamespaceOfPrefix ()
+               {
+                       document.LoadXml ("<root xmlns='urn:default' attr='value' "
+                               + "xml:lang='en' xmlns:foo='urn:foo' foo:att='fooatt'>text node</root>");
+                       XmlNode n = document.DocumentElement;
+                       AssertEquals ("urn:default", n.GetNamespaceOfPrefix (String.Empty));
+                       AssertEquals ("urn:foo", n.GetNamespaceOfPrefix ("foo"));
+                       AssertEquals (String.Empty, n.GetNamespaceOfPrefix ("bar"));
+                       AssertEquals (String.Empty, n.GetNamespaceOfPrefix ("xml"));
+                       AssertEquals (String.Empty, n.GetNamespaceOfPrefix ("xmlns"));
+
+                       n = document.DocumentElement.FirstChild;
+                       AssertEquals ("urn:default", n.GetNamespaceOfPrefix (String.Empty));
+                       AssertEquals ("urn:foo", n.GetNamespaceOfPrefix ("foo"));
+                       AssertEquals (String.Empty, n.GetNamespaceOfPrefix ("bar"));
+                       AssertEquals (String.Empty, n.GetNamespaceOfPrefix ("xml"));
+                       AssertEquals (String.Empty, n.GetNamespaceOfPrefix ("xmlns"));
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void GetNamespaceOfPrefixNullArg ()
+               {
+                       new XmlDocument ().GetNamespaceOfPrefix (null);
+               }
+
                [Test]
                public void InsertBefore()
                {
@@ -173,6 +200,42 @@ namespace MonoTests.System.Xml
 #endif
 }
 
+               [Test]
+               public void Normalize ()
+               {
+                       XmlDocument doc = new XmlDocument ();
+                       doc.LoadXml ("<root>This is the <b>hardest</b> one.</root>");\r
+                       doc.NodeInserted += new XmlNodeChangedEventHandler (EventNodeInserted);\r
+                       doc.NodeChanged += new XmlNodeChangedEventHandler (EventNodeChanged);\r
+                       doc.NodeRemoved += new XmlNodeChangedEventHandler (EventNodeRemoved);\r
+\r
+                       AssertEquals (3, doc.DocumentElement.ChildNodes.Count);\r
+\r
+                       doc.DocumentElement.Normalize ();\r
+                       AssertEquals (3, doc.DocumentElement.ChildNodes.Count);\r
+                       Assert (changed);\r
+                       inserted = changed = removed = false;\r
+\r
+                       doc.DocumentElement.AppendChild (doc.CreateTextNode ("Addendum."));\r
+                       AssertEquals (4, doc.DocumentElement.ChildNodes.Count);\r
+                       inserted = changed = removed = false;\r
+\r
+                       doc.DocumentElement.Normalize ();\r
+                       AssertEquals (3, doc.DocumentElement.ChildNodes.Count);\r
+                       Assert (changed);\r
+                       Assert (removed);\r
+                       inserted = changed = removed = false;\r
+\r
+                       doc.DocumentElement.SetAttribute ("attr", "");\r
+                       XmlAttribute attr = doc.DocumentElement.Attributes [0] as XmlAttribute;\r
+                       AssertEquals (1, attr.ChildNodes.Count);\r
+                       inserted = changed = removed = false;\r
+                       attr.Normalize ();\r
+                       // Such behavior violates DOM Level 2 Node#normalize(),\r
+                       // but MS DOM is designed as such.\r
+                       AssertEquals (1, attr.ChildNodes.Count);\r
+               }
+
                [Test]
                public void PrependChild()
                {
index a1fb756b9b7977b0af786584e33f798cdb449727..821e51b9b2f73b9123f3dc4892b8ca69c07806a8 100644 (file)
@@ -86,7 +86,15 @@ namespace MonoTests.System.Xml
                        AssertEquals (xml.Replace ("'", "\""),\r
                                writer.ToString ());\r
                }\r
-               \r
+\r
+               [Test]\r
+               public void WriteNodeNone ()\r
+               {\r
+                       setupWriter ();\r
+                       XmlTextReader xtr = new XmlTextReader ("", XmlNodeType.Element, null);\r
+                       xtr.Read ();\r
+                       xtw.WriteNode (xtr, false); // does not report any errors\r
+               }\r
 \r
                // MS.NET's not-overriden XmlWriter.WriteStartElement(name)\r
                // invokes WriteStartElement(null, name, null). \r