Browse Source

2004-02-03 Atsushi Enomoto <[email protected]>

	* XmlReaderCommonTests.cs : Added SurrogatePairContent().
	* XmlDocumentTests.cs : Added LoadXmlReaderNamespacesFalse().
	* XmlEntityReferenceTests.cs : Added TestsDescendantsRecursively().

svn path=/trunk/mcs/; revision=22743
Atsushi Eno 22 years ago
parent
commit
43143e82c8

+ 6 - 0
mcs/class/System.XML/Test/System.Xml/ChangeLog

@@ -1,3 +1,9 @@
+2004-02-03  Atsushi Enomoto <[email protected]>
+
+	* XmlReaderCommonTests.cs : Added SurrogatePairContent().
+	* XmlDocumentTests.cs : Added LoadXmlReaderNamespacesFalse().
+	* XmlEntityReferenceTests.cs : Added TestsDescendantsRecursively().
+
 2004-01-28  Atsushi Enomoto <[email protected]>
 
 	* XmlDocumentTypeTests.cs : Added IncorrectInternalSubset().

+ 9 - 0
mcs/class/System.XML/Test/System.Xml/XmlDocumentTests.cs

@@ -698,6 +698,15 @@ namespace MonoTests.System.Xml
 			AssertEquals ("Not Loaded From IOStream", true, document.HasChildNodes);
 		}
 
+		[Test]
+		public void LoadXmlReaderNamespacesFalse ()
+		{
+			XmlTextReader xtr = new XmlTextReader (
+				"<root xmlns='urn:foo' />", XmlNodeType.Document, null);
+			xtr.Namespaces = false;
+			document.Load (xtr); // Don't complain about xmlns attribute with its namespaceURI == String.Empty.
+		}
+
 		[Test]
 		public void LoadXmlCDATA ()
 		{

+ 17 - 0
mcs/class/System.XML/Test/System.Xml/XmlEntityReferenceTests.cs

@@ -28,5 +28,22 @@ namespace MonoTests.System.Xml
 			AssertEquals ("Name", "foo", er.Name);
 			AssertEquals ("WriteTo", "<root>&foo;</root>", doc.DocumentElement.OuterXml);
 		}
+
+		[Test]
+		public void TestDescendantsRecursively ()
+		{
+			string dtd = "<!DOCTYPE root [<!ELEMENT root (#PCDATA)*>"
+				+ "<!ENTITY ent 'value'>"
+				+ "<!ENTITY ent2 'my &ent; string'>"
+				+ "]>";
+			string xml = dtd + "<root>&ent;</root>";
+			XmlTextReader xtr = new XmlTextReader (xml, XmlNodeType.Document, null);
+			XmlDocument doc = new XmlDocument ();
+			doc.Load (xtr);
+			XmlEntity ent = (XmlEntity) doc.DocumentType.Entities.GetNamedItem ("ent2");
+			AssertEquals ("ent2", ent.Name);
+			AssertEquals ("my", ent.FirstChild.Value);
+			AssertEquals ("value", ent.FirstChild.NextSibling.FirstChild.Value);
+		}
 	}
 }

+ 17 - 0
mcs/class/System.XML/Test/System.Xml/XmlReaderCommonTests.cs

@@ -1288,5 +1288,22 @@ namespace MonoTests.System.Xml
 			while (!xmlReader.EOF)
 				xmlReader.Read ();
 		}
+
+		[Test]
+		public void SurrogatePairContent ()
+		{
+			string xml = "<root xmlns='&#x10100;'/>";
+			RunTest (xml, new TestMethod (SurrogatePairContent));
+		}
+
+		public void SurrogatePairContent (XmlReader xmlReader)
+		{
+			xmlReader.Read ();
+			AssertEquals (true, xmlReader.MoveToAttribute ("xmlns"));
+			AssertEquals ("xmlns", xmlReader.Name);
+			AssertEquals (2, xmlReader.Value.Length);
+			AssertEquals (0xD800, (int) xmlReader.Value [0]);
+			AssertEquals (0xDD00, (int) xmlReader.Value [1]);
+		}
 	}
 }