xtr.Read ();
}
+ [Test] // bug #76102
+ public void SurrogateAtReaderByteCache ()
+ {
+ XmlTextReader xtr = null;
+ try {
+ xtr = new XmlTextReader (File.OpenText ("Test/XmlFiles/76102.xml"));
+ while (!xtr.EOF)
+ xtr.Read ();
+ } finally {
+ if (xtr != null)
+ xtr.Close ();
+ }
+ }
+
[Test] // bug #76247
public void SurrogateRoundtrip ()
{
arr [i] = (int) line [i];
AssertEquals (new int [] {0xd862, 0xddc0}, arr);
}
+
+ [Test]
+ [ExpectedException (typeof (XmlException))]
+ public void RejectEmptyNamespaceWithNonEmptyPrefix ()
+ {
+ XmlTextReader xtr = new XmlTextReader ("<root xmlns:my='' />",
+ XmlNodeType.Document, null);
+ xtr.Read ();
+ }
+
+ [Test]
+ public void EncodingProperty ()
+ {
+ string xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<root>\n<node>\nvalue\n</node>\n</root>";
+ XmlTextReader xr = new XmlTextReader (xml, XmlNodeType.Document, null);
+ AssertNull ("#1", xr.Encoding);
+ xr.Read ();
+ AssertEquals ("#2", Encoding.Unicode, xr.Encoding);
+ }
+
+ [Test]
+ public void WhitespaceHandlingSignificant ()
+ {
+ XmlTextReader xtr = new XmlTextReader ("<root> <child xml:space='preserve'> <descendant xml:space='default'> </descendant> </child><child xml:space='default'> </child> </root>",
+ XmlNodeType.Document, null);
+ xtr.WhitespaceHandling = WhitespaceHandling.Significant;
+
+ xtr.Read (); // root
+ xtr.Read (); // child. skip whitespaces
+ AssertEquals ("#1", XmlNodeType.Element, xtr.NodeType);
+ xtr.Read (); // significant whitespaces
+ AssertEquals ("#2", XmlNodeType.SignificantWhitespace, xtr.NodeType);
+ xtr.Read ();
+ AssertEquals ("#3", "descendant", xtr.LocalName);
+ xtr.Read (); // end of descendant. skip whitespaces
+ AssertEquals ("#4", XmlNodeType.EndElement, xtr.NodeType);
+ xtr.Read (); // significant whitespaces
+ AssertEquals ("#5", XmlNodeType.SignificantWhitespace, xtr.NodeType);
+ xtr.Read (); // end of child
+ xtr.Read (); // child
+ xtr.Read (); // end of child. skip whitespaces
+ AssertEquals ("#6", XmlNodeType.EndElement, xtr.NodeType);
+ xtr.Read (); // end of root. skip whitespaces
+ AssertEquals ("#7", XmlNodeType.EndElement, xtr.NodeType);
+ }
+
+ [Test]
+ public void WhitespaceHandlingNone ()
+ {
+ XmlTextReader xtr = new XmlTextReader ("<root> <child xml:space='preserve'> <descendant xml:space='default'> </descendant> </child><child xml:space='default'> </child> </root>",
+ XmlNodeType.Document, null);
+ xtr.WhitespaceHandling = WhitespaceHandling.None;
+
+ xtr.Read (); // root
+ xtr.Read (); // child. skip whitespaces
+ AssertEquals ("#1", XmlNodeType.Element, xtr.NodeType);
+ xtr.Read (); // descendant. skip significant whitespaces
+ AssertEquals ("#2", "descendant", xtr.LocalName);
+ xtr.Read (); // end of descendant. skip whitespaces
+ AssertEquals ("#3", XmlNodeType.EndElement, xtr.NodeType);
+ xtr.Read (); // end of child. skip significant whitespaces
+ xtr.Read (); // child
+ xtr.Read (); // end of child. skip whitespaces
+ AssertEquals ("#6", XmlNodeType.EndElement, xtr.NodeType);
+ xtr.Read (); // end of root. skip whitespaces
+ AssertEquals ("#7", XmlNodeType.EndElement, xtr.NodeType);
+ }
+
+ [Test]
+ public void WhitespacesAfterTextDeclaration ()
+ {
+ XmlTextReader xtr = new XmlTextReader (
+ "<?xml version='1.0' encoding='utf-8' ?> <x/>",
+ XmlNodeType.Element,
+ null);
+ xtr.Read ();
+ AssertEquals ("#1", XmlNodeType.Whitespace, xtr.NodeType);
+ AssertEquals ("#2", " ", xtr.Value);
+ }
+
+ // bug #79683
+ [Test]
+ public void NotationPERef ()
+ {
+ string xml = "<!DOCTYPE root SYSTEM 'Test/XmlFiles/79683.dtd'><root/>";
+ XmlTextReader xtr = new XmlTextReader (xml, XmlNodeType.Document, null);
+ while (!xtr.EOF)
+ xtr.Read ();
+ }
}
}