XmlWhiteSpaceTests.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. //
  2. // System.Xml.XmlWhitespaceTests.cs
  3. //
  4. // Authors:
  5. // Duncan Mak ([email protected])
  6. // Martin Willemoes Hansen ([email protected])
  7. //
  8. // (C) Ximian, Inc.
  9. // (C) 2003 Martin Willemoes Hansen
  10. //
  11. using System;
  12. using System.Xml;
  13. using NUnit.Framework;
  14. namespace MonoTests.System.Xml
  15. {
  16. [TestFixture]
  17. public class XmlWhiteSpaceTests
  18. {
  19. XmlDocument document;
  20. XmlDocument doc2;
  21. XmlWhitespace whitespace;
  22. XmlWhitespace broken;
  23. XmlNode original;
  24. XmlNode deep;
  25. XmlNode shallow;
  26. [SetUp]
  27. public void GetReady ()
  28. {
  29. document = new XmlDocument ();
  30. document.LoadXml ("<root><foo></foo></root>");
  31. XmlElement element = document.CreateElement ("foo");
  32. whitespace = document.CreateWhitespace ("\r\n");
  33. element.AppendChild (whitespace);
  34. doc2 = new XmlDocument ();
  35. doc2.PreserveWhitespace = true;
  36. }
  37. [Test]
  38. public void InnerAndOuterXml ()
  39. {
  40. whitespace = doc2.CreateWhitespace ("\r\n\t ");
  41. Assertion.AssertEquals (String.Empty, whitespace.InnerXml);
  42. Assertion.AssertEquals ("\r\n\t ", whitespace.OuterXml);
  43. }
  44. internal void XmlNodeBaseProperties (XmlNode original, XmlNode cloned)
  45. {
  46. // assertequals (original.nodetype + " was incorrectly cloned.",
  47. // original.baseuri, cloned.baseuri);
  48. Assertion.AssertNull (cloned.ParentNode);
  49. Assertion.AssertEquals ("Value incorrectly cloned",
  50. cloned.Value, original.Value);
  51. Assertion.Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
  52. }
  53. [Test]
  54. public void XmlWhitespaceBadConstructor ()
  55. {
  56. try {
  57. broken = document.CreateWhitespace ("black");
  58. } catch (ArgumentException) {
  59. return;
  60. } catch (Exception) {
  61. Assertion.Fail ("Incorrect Exception thrown.");
  62. }
  63. }
  64. [Test]
  65. public void XmlWhitespaceConstructor ()
  66. {
  67. Assertion.AssertEquals ("whitespace char didn't get copied right",
  68. "\r\n", whitespace.Data);
  69. }
  70. [Test]
  71. public void XmlWhitespaceName ()
  72. {
  73. Assertion.AssertEquals (whitespace.NodeType + " Name property broken",
  74. whitespace.Name, "#whitespace");
  75. }
  76. [Test]
  77. public void XmlWhitespaceLocalName ()
  78. {
  79. Assertion.AssertEquals (whitespace.NodeType + " LocalName property broken",
  80. whitespace.LocalName, "#whitespace");
  81. }
  82. [Test]
  83. public void XmlWhitespaceNodeType ()
  84. {
  85. Assertion.AssertEquals ("XmlWhitespace NodeType property broken",
  86. whitespace.NodeType.ToString (), "Whitespace");
  87. }
  88. [Test]
  89. public void XmlWhitespaceIsReadOnly ()
  90. {
  91. Assertion.AssertEquals ("XmlWhitespace IsReadOnly property broken",
  92. whitespace.IsReadOnly, false);
  93. }
  94. [Test]
  95. public void XmlWhitespaceCloneNode ()
  96. {
  97. original = whitespace;
  98. shallow = whitespace.CloneNode (false); // shallow
  99. XmlNodeBaseProperties (original, shallow);
  100. deep = whitespace.CloneNode (true); // deep
  101. XmlNodeBaseProperties (original, deep);
  102. Assertion.AssertEquals ("deep cloning differs from shallow cloning",
  103. deep.OuterXml, shallow.OuterXml);
  104. }
  105. }
  106. }