Ver código fonte

2003-07-12 Atsushi Enomoto <[email protected]>

	* XmlNodeReaderTests.cs : Fixed ReadInnerXmlWrongInit() for correct
	  ReadState check.
	* ChangeLog was incorrectly added about above stuff.
	* XmlTextReaderTests.cs : added some reader's state check tests and
	  ReadAsElementContent and ReadAsAttributeContent.
	* XmlTextWriterTests.cs : added DontOutputMultipleXmlns().

svn path=/trunk/mcs/; revision=16132
Atsushi Eno 22 anos atrás
pai
commit
f218c0ded5

+ 9 - 5
mcs/class/System.XML/Test/System.Xml/ChangeLog

@@ -1,11 +1,15 @@
-2003-07-06  Atsushi Enomoto <[email protected]>
-
-	* added XmlValidatingReaderTests.cs.
-
-2003-07-05  Atsushi Enomoto <[email protected]>
+2003-07-12  Atsushi Enomoto <[email protected]>
 
 	* XmlNodeReaderTests.cs : Fixed ReadInnerXmlWrongInit() for correct 
 	  ReadState check.
+	* ChangeLog was incorrectly added about above stuff.
+	* XmlTextReaderTests.cs : added some reader's state check tests and
+	  ReadAsElementContent and ReadAsAttributeContent.
+	* XmlTextWriterTests.cs : added DontOutputMultipleXmlns().
+
+2003-07-06  Atsushi Enomoto <[email protected]>
+
+	* added XmlValidatingReaderTests.cs.
 
 2003-07-01  Martin Willemoes Hansen <[email protected]>
 

+ 2 - 2
mcs/class/System.XML/Test/System.Xml/XmlNodeReaderTests.cs

@@ -69,8 +69,8 @@ namespace MonoTests.System.Xml
 			document.LoadXml ("<root>test of <b>mixed</b> string.</root>");
 			XmlNodeReader nrdr = new XmlNodeReader (document);
 			nrdr.ReadInnerXml ();
-			AssertEquals ("initial.ReadState", ReadState.Initial, nrdr.ReadState);
-			AssertEquals ("initial.EOF", false, nrdr.EOF);
+			AssertEquals ("initial.ReadState", ReadState.Error, nrdr.ReadState);
+			AssertEquals ("initial.EOF", true, nrdr.EOF);
 			AssertEquals ("initial.NodeType", XmlNodeType.None, nrdr.NodeType);
 		}
 

+ 63 - 0
mcs/class/System.XML/Test/System.Xml/XmlTextReaderTests.cs

@@ -577,6 +577,69 @@ namespace MonoTests.System.Xml
 
 			AssertEndDocument (xmlReader);
 		}
+
+		[Test]
+		[ExpectedException (typeof (XmlException))]
+		public void XmlDeclAfterWhitespace ()
+		{
+			XmlTextReader xtr = new XmlTextReader (
+				" <?xml version='1.0' ?><root />",
+				XmlNodeType.Document,
+				null);
+			xtr.Read ();	// ws
+			xtr.Read ();	// not-wf xmldecl
+		}
+
+		[Test]
+		[ExpectedException (typeof (XmlException))]
+		public void XmlDeclAfterComment ()
+		{
+			XmlTextReader xtr = new XmlTextReader (
+				"<!-- comment --><?xml version='1.0' ?><root />",
+				XmlNodeType.Document,
+				null);
+			xtr.Read ();	// comment
+			xtr.Read ();	// not-wf xmldecl
+		}
+
+		[Test]
+		[ExpectedException (typeof (XmlException))]
+		public void XmlDeclAfterProcessingInstruction ()
+		{
+			XmlTextReader xtr = new XmlTextReader (
+				"<?myPI let it go ?><?xml version='1.0' ?><root />",
+				XmlNodeType.Document,
+				null);
+			xtr.Read ();	// PI
+			xtr.Read ();	// not-wf xmldecl
+		}
+
+		[Test]
+		[ExpectedException (typeof (XmlException))]
+		public void StartsFromEndElement ()
+		{
+			XmlTextReader xtr = new XmlTextReader (
+				"</root>",
+				XmlNodeType.Document,
+				null);
+			xtr.Read ();
+		}
+
+		[Test]
+		public void ReadAsElementContent ()
+		{
+			XmlTextReader xtr = new XmlTextReader (
+				"<foo /><bar />", XmlNodeType.Element, null);
+			xtr.Read ();
+		}
+
+		[Test]
+		public void ReadAsAttributeContent ()
+		{
+			XmlTextReader xtr = new XmlTextReader (
+				"test", XmlNodeType.Attribute, null);
+			xtr.Read ();
+		}
 
 		[Test] 
 		public void ExternalDocument ()

+ 11 - 0
mcs/class/System.XML/Test/System.Xml/XmlTextWriterTests.cs

@@ -1055,5 +1055,16 @@ namespace MonoTests.System.Xml
 			xtw.WriteWhitespace (" ");
 			AssertEquals ("<foo bar='baz'> ", StringWriterText);
 		}
+
+		[Test]
+		public void DontOutputMultipleXmlns ()
+		{
+			XmlDocument doc = new XmlDocument();
+			doc.LoadXml("<a xmlns:dt=\"b\" dt:dt=\"c\"/>");
+			XmlDocument doc2 = new XmlDocument();
+			doc2.LoadXml(doc.InnerXml);
+			AssertEquals ("<a xmlns:dt=\"b\" dt:dt=\"c\" />",
+				doc2.OuterXml);
+		}
 	}
 }