XmlReaderSettingsTests.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // System.Xml.XmlReaderSettingsTests.cs
  3. //
  4. // Authors:
  5. // Atsushi Enomoto <[email protected]>
  6. //
  7. // (C)2004 Novell Inc.
  8. //
  9. #if NET_2_0
  10. using System;
  11. using System.IO;
  12. using System.Xml;
  13. using System.Xml.Schema;
  14. using NUnit.Framework;
  15. namespace MonoTests.System.Xml
  16. {
  17. [TestFixture]
  18. public class XmlReaderSettingsTests : Assertion
  19. {
  20. [Test]
  21. public void DefaultValue ()
  22. {
  23. XmlReaderSettings s = new XmlReaderSettings ();
  24. AssertEquals (true, s.CheckCharacters);
  25. AssertEquals (ConformanceLevel.Document, s.ConformanceLevel);
  26. AssertEquals (false, s.DtdValidate);
  27. AssertEquals (false, s.IgnoreComments);
  28. AssertEquals (true, s.IgnoreInlineSchema);
  29. AssertEquals (false, s.IgnoreProcessingInstructions);
  30. AssertEquals (true, s.IgnoreSchemaLocation);
  31. AssertEquals (true, s.IgnoreValidationWarnings);
  32. AssertEquals (false, s.IgnoreWhitespace);
  33. AssertEquals (0, s.LineNumberOffset);
  34. AssertEquals (0, s.LinePositionOffset);
  35. AssertNull (s.NameTable);
  36. AssertEquals (0, s.Schemas.Count);
  37. AssertEquals (false, s.XsdValidate);
  38. }
  39. [Test]
  40. [ExpectedException (typeof (XmlException))]
  41. public void SetSchemas ()
  42. {
  43. XmlReaderSettings s = new XmlReaderSettings ();
  44. s.Schemas = new XmlSchemaSet ();
  45. }
  46. [Test]
  47. public void CloseInput ()
  48. {
  49. StringReader sr = new StringReader ("<root/><root/>");
  50. XmlReader xtr = XmlReader.Create (sr); // default false
  51. xtr.Read ();
  52. xtr.Close ();
  53. // It should without error, unlike usual XmlTextReader.
  54. sr.ReadLine ();
  55. }
  56. [Test]
  57. public void CreateAndNormalization ()
  58. {
  59. StringReader sr = new StringReader (
  60. "<root attr=' value '>test\rstring</root>");
  61. XmlReaderSettings settings = new XmlReaderSettings ();
  62. settings.CheckCharacters = false;
  63. XmlReader xtr = XmlReader.Create (
  64. sr, null, null, settings);
  65. xtr.Read ();
  66. xtr.MoveToFirstAttribute ();
  67. AssertEquals (" value ", xtr.Value);
  68. xtr.Read ();
  69. // Text string is normalized
  70. AssertEquals ("test\nstring", xtr.Value);
  71. }
  72. [Test]
  73. public void CheckCharactersAndNormalization ()
  74. {
  75. // It should *not* raise an error (even Normalization
  76. // is set by default).
  77. StringReader sr = new StringReader (
  78. "<root attr='&#0;'>&#x0;</root>");
  79. XmlReaderSettings settings = new XmlReaderSettings ();
  80. settings.CheckCharacters = false;
  81. XmlReader xtr = XmlReader.Create (
  82. sr, null, null, settings);
  83. // After creation, changes on source XmlReaderSettings
  84. // does not matter.
  85. settings.CheckCharacters = false;
  86. xtr.Read ();
  87. xtr.MoveToFirstAttribute ();
  88. AssertEquals ("\0", xtr.Value);
  89. xtr.Read ();
  90. AssertEquals ("\0", xtr.Value);
  91. }
  92. // Hmm, does it really make sense? :-/
  93. [Test]
  94. public void CheckCharactersForNonTextReader ()
  95. {
  96. // It should *not* raise an error (even Normalization
  97. // is set by default).
  98. StringReader sr = new StringReader (
  99. "<root attr='&#0;'>&#x0;</root>");
  100. XmlReaderSettings settings = new XmlReaderSettings ();
  101. settings.CheckCharacters = false;
  102. XmlReader xr = XmlReader.Create (
  103. sr, null, null, settings);
  104. // Enable character checking for XmlNodeReader.
  105. settings.CheckCharacters = true;
  106. XmlDocument doc = new XmlDocument ();
  107. doc.Load (xr);
  108. xr = XmlReader.Create (new XmlNodeReader (doc), settings);
  109. // But it won't work against XmlNodeReader.
  110. xr.Read ();
  111. xr.MoveToFirstAttribute ();
  112. AssertEquals ("\0", xr.Value);
  113. xr.Read ();
  114. AssertEquals ("\0", xr.Value);
  115. }
  116. }
  117. }
  118. #endif