Merge pull request #819 from brendanzagaeski/patch-1
[mono.git] / mcs / class / System.XML / Test / System.Xml / XmlNodeReaderTests.cs
index 25eae6f31f7cc5aacb7ccc3695b22625b454e446..8d7a9a9afa614d7a58c2772f2f3bc3e00904979e 100644 (file)
@@ -20,7 +20,7 @@ using NUnit.Framework;
 namespace MonoTests.System.Xml\r
 {\r
        [TestFixture]\r
-       public class XmlNodeReaderTests : Assertion\r
+       public class XmlNodeReaderTests\r
        {\r
                [SetUp]\r
                public void GetReady ()\r
@@ -36,19 +36,19 @@ namespace MonoTests.System.Xml
                        XmlNodeReader nrdr;\r
                        try {\r
                                nrdr = new XmlNodeReader (null);\r
-                               Fail ("null reference exception is preferable.");\r
+                               Assert.Fail ("null reference exception is preferable.");\r
                        } catch (NullReferenceException) {\r
                        }\r
                        nrdr = new XmlNodeReader (new XmlDocument ());\r
                        nrdr.Read ();\r
-                       AssertEquals ("newDoc.ReadState", ReadState.Error, nrdr.ReadState);\r
-                       AssertEquals ("newDoc.EOF", true, nrdr.EOF);\r
-                       AssertEquals ("newDoc.NodeType", XmlNodeType.None, nrdr.NodeType);\r
+                       Assert.AreEqual (ReadState.Error, nrdr.ReadState, "newDoc.ReadState");\r
+                       Assert.AreEqual (true, nrdr.EOF, "newDoc.EOF");\r
+                       Assert.AreEqual (XmlNodeType.None, nrdr.NodeType, "newDoc.NodeType");\r
                        nrdr = new XmlNodeReader (document.CreateDocumentFragment ());\r
                        nrdr.Read ();\r
-                       AssertEquals ("Fragment.ReadState", ReadState.Error, nrdr.ReadState);\r
-                       AssertEquals ("Fragment.EOF", true, nrdr.EOF);\r
-                       AssertEquals ("Fragment.NodeType", XmlNodeType.None, nrdr.NodeType);\r
+                       Assert.AreEqual (ReadState.Error, nrdr.ReadState, "Fragment.ReadState");\r
+                       Assert.AreEqual (true, nrdr.EOF, "Fragment.EOF");\r
+                       Assert.AreEqual (XmlNodeType.None, nrdr.NodeType, "Fragment.NodeType");\r
                }\r
 \r
                [Test]\r
@@ -56,10 +56,10 @@ namespace MonoTests.System.Xml
                {\r
                        XmlNodeReader nrdr = new XmlNodeReader (document.DocumentElement);\r
                        nrdr.Read ();\r
-                       AssertEquals ("<root>.NodeType", XmlNodeType.Element, nrdr.NodeType);\r
-                       AssertEquals ("<root>.Name", "root", nrdr.Name);\r
-                       AssertEquals ("<root>.ReadState", ReadState.Interactive, nrdr.ReadState);\r
-                       AssertEquals ("<root>.Depth", 0, nrdr.Depth);\r
+                       Assert.AreEqual (XmlNodeType.Element, nrdr.NodeType, "<root>.NodeType");\r
+                       Assert.AreEqual ("root", nrdr.Name, "<root>.Name");\r
+                       Assert.AreEqual (ReadState.Interactive, nrdr.ReadState, "<root>.ReadState");\r
+                       Assert.AreEqual (0, nrdr.Depth, "<root>.Depth");\r
                }\r
 \r
 \r
@@ -69,9 +69,9 @@ namespace MonoTests.System.Xml
                        document.LoadXml ("<root>test of <b>mixed</b> string.</root>");\r
                        XmlNodeReader nrdr = new XmlNodeReader (document);\r
                        nrdr.ReadInnerXml ();\r
-                       AssertEquals ("initial.ReadState", ReadState.Initial, nrdr.ReadState);\r
-                       AssertEquals ("initial.EOF", false, nrdr.EOF);\r
-                       AssertEquals ("initial.NodeType", XmlNodeType.None, nrdr.NodeType);\r
+                       Assert.AreEqual (ReadState.Initial, nrdr.ReadState, "initial.ReadState");\r
+                       Assert.AreEqual (false, nrdr.EOF, "initial.EOF");\r
+                       Assert.AreEqual (XmlNodeType.None, nrdr.NodeType, "initial.NodeType");\r
                }\r
 \r
                [Test]\r
@@ -82,38 +82,38 @@ namespace MonoTests.System.Xml
                        string dtd = "<!DOCTYPE root[<!ELEMENT root (#PCDATA|foo)*>" + ent1 + ent2;\r
                        string xml = dtd + "<root>&ent;&ent2;</root>";\r
                        document.LoadXml (xml);\r
-                       AssertEquals (xml, document.OuterXml);\r
+                       Assert.AreEqual (xml, document.OuterXml);\r
                        XmlNodeReader nr = new XmlNodeReader (document);\r
                        nr.Read ();     // DTD\r
                        nr.Read ();     // root\r
                        nr.Read ();     // &ent;\r
-                       AssertEquals (XmlNodeType.EntityReference, nr.NodeType);\r
-                       AssertEquals ("depth#1", 1, nr.Depth);\r
+                       Assert.AreEqual (XmlNodeType.EntityReference, nr.NodeType);\r
+                       Assert.AreEqual (1, nr.Depth, "depth#1");\r
                        nr.ResolveEntity ();\r
                        // It is still entity reference.\r
-                       AssertEquals (XmlNodeType.EntityReference, nr.NodeType);\r
+                       Assert.AreEqual (XmlNodeType.EntityReference, nr.NodeType);\r
                        nr.Read ();\r
-                       AssertEquals (XmlNodeType.Text, nr.NodeType);\r
-                       AssertEquals ("depth#2", 2, nr.Depth);\r
-                       AssertEquals ("entity string", nr.Value);\r
+                       Assert.AreEqual (XmlNodeType.Text, nr.NodeType);\r
+                       Assert.AreEqual (2, nr.Depth, "depth#2");\r
+                       Assert.AreEqual ("entity string", nr.Value);\r
                        nr.Read ();\r
-                       AssertEquals (XmlNodeType.EndEntity, nr.NodeType);\r
-                       AssertEquals ("depth#3", 1, nr.Depth);\r
-                       AssertEquals ("", nr.Value);\r
+                       Assert.AreEqual (XmlNodeType.EndEntity, nr.NodeType);\r
+                       Assert.AreEqual (1, nr.Depth, "depth#3");\r
+                       Assert.AreEqual ("", nr.Value);\r
 \r
                        nr.Read ();     // &ent2;\r
-                       AssertEquals (XmlNodeType.EntityReference, nr.NodeType);\r
-                       AssertEquals ("depth#4", 1, nr.Depth);\r
+                       Assert.AreEqual (XmlNodeType.EntityReference, nr.NodeType);\r
+                       Assert.AreEqual (1, nr.Depth, "depth#4");\r
                        nr.ResolveEntity ();\r
-                       AssertEquals (xml, document.OuterXml);\r
+                       Assert.AreEqual (xml, document.OuterXml);\r
                        // It is still entity reference.\r
-                       AssertEquals (XmlNodeType.EntityReference, nr.NodeType);\r
+                       Assert.AreEqual (XmlNodeType.EntityReference, nr.NodeType);\r
                        // It now became element node.\r
                        nr.Read ();\r
-                       AssertEquals (XmlNodeType.Element, nr.NodeType);\r
-                       AssertEquals ("depth#5", 2, nr.Depth);\r
+                       Assert.AreEqual (XmlNodeType.Element, nr.NodeType);\r
+                       Assert.AreEqual (2, nr.Depth, "depth#5");\r
 \r
-                       AssertEquals (xml, document.OuterXml);\r
+                       Assert.AreEqual (xml, document.OuterXml);\r
                }\r
 \r
                [Test]\r
@@ -132,24 +132,24 @@ namespace MonoTests.System.Xml
                        document.AppendChild (document.ReadNode (xtr));\r
                        document.AppendChild (document.ReadNode (xtr));\r
                        xtr.Close ();\r
-                       AssertEquals (xml, document.OuterXml);\r
+                       Assert.AreEqual (xml, document.OuterXml);\r
                        XmlNodeReader nr = new XmlNodeReader (document);\r
                        nr.Read ();     // DTD\r
                        nr.Read ();     // root\r
                        nr.Read ();     // &ent3;\r
-                       AssertEquals (XmlNodeType.EntityReference, nr.NodeType);\r
-                       // ent3 does not exists in this dtd.\r
+                       Assert.AreEqual (XmlNodeType.EntityReference, nr.NodeType);\r
+                       // ent3 does not exist in this dtd.\r
                        nr.ResolveEntity ();\r
-                       AssertEquals (XmlNodeType.EntityReference, nr.NodeType);\r
+                       Assert.AreEqual (XmlNodeType.EntityReference, nr.NodeType);\r
                        nr.Read ();\r
 #if false\r
                        // Hmm... MS.NET returned as it is a Text node.\r
-                       AssertEquals (XmlNodeType.Text, nr.NodeType);\r
-                       AssertEquals (String.Empty, nr.Value);\r
+                       Assert.AreEqual (XmlNodeType.Text, nr.NodeType);\r
+                       Assert.AreEqual (String.Empty, nr.Value);\r
                        nr.Read ();\r
                        // Really!?\r
-                       AssertEquals (XmlNodeType.EndEntity, nr.NodeType);\r
-                       AssertEquals (String.Empty, nr.Value);\r
+                       Assert.AreEqual (XmlNodeType.EndEntity, nr.NodeType);\r
+                       Assert.AreEqual (String.Empty, nr.Value);\r
 #endif\r
                }\r
 \r
@@ -165,12 +165,12 @@ namespace MonoTests.System.Xml
                        xtr.Read ();\r
                        document.AppendChild (document.ReadNode (xtr));\r
                        xtr.Close ();\r
-                       AssertEquals (xml, document.OuterXml);\r
+                       Assert.AreEqual (xml, document.OuterXml);\r
                        XmlNodeReader nr = new XmlNodeReader (document);\r
                        nr.Read ();     // root\r
                        nr.Read ();     // &ent;\r
-                       AssertEquals (XmlNodeType.EntityReference, nr.NodeType);\r
-                       // ent does not exists in this dtd.\r
+                       Assert.AreEqual (XmlNodeType.EntityReference, nr.NodeType);\r
+                       // ent does not exist in this dtd.\r
                        nr.ResolveEntity ();\r
                }\r
 \r
@@ -181,16 +181,28 @@ namespace MonoTests.System.Xml
                        XmlNodeReader nr = new XmlNodeReader (\r
                                document.DocumentElement.FirstChild);\r
                        nr.Read ();\r
-                       AssertEquals ("#0", true, nr.IsEmptyElement);\r
-                       Assert ("#1", !nr.Read ());\r
+                       Assert.AreEqual (true, nr.IsEmptyElement, "#0");\r
+                       Assert.IsTrue (!nr.Read (), "#1");\r
 \r
                        document.LoadXml ("<root><child></child></root>");\r
                        nr = new XmlNodeReader (\r
                                document.DocumentElement.FirstChild);\r
                        nr.Read ();\r
-                       Assert ("#2", nr.Read ());\r
-                       AssertEquals ("#2.2", false, nr.IsEmptyElement);\r
-                       Assert ("#3", !nr.Read ());\r
+                       Assert.IsTrue (nr.Read (), "#2");\r
+                       Assert.AreEqual (false, nr.IsEmptyElement, "#2.2");\r
+                       Assert.IsTrue (!nr.Read (), "#3");\r
+               }\r
+               \r
+               [Test] // bug #550379\r
+               public void MoveToNextAttributeFromValue ()\r
+               {\r
+                       document.LoadXml ("<ul test='xxx'></ul>");\r
+                       XmlNodeReader nr = new XmlNodeReader (document);\r
+                       nr.Read ();\r
+                       nr.Read ();\r
+                       Assert.IsTrue (nr.MoveToFirstAttribute (), "#1");\r
+                       Assert.IsTrue (nr.ReadAttributeValue (), "#2");\r
+                       Assert.IsFalse (nr.MoveToNextAttribute (), "#3");\r
                }\r
        }\r
 \r