XmlWhiteSpaceTests.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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 : Assertion
  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. AssertEquals (String.Empty, whitespace.InnerXml);
  42. 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. AssertNull (cloned.ParentNode);
  49. AssertEquals ("Value incorrectly cloned",
  50. cloned.Value, original.Value);
  51. Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
  52. }
  53. [Test]
  54. [ExpectedException (typeof (ArgumentException))]
  55. public void XmlWhitespaceBadConstructor ()
  56. {
  57. broken = document.CreateWhitespace ("black");
  58. }
  59. [Test]
  60. public void XmlWhitespaceConstructor ()
  61. {
  62. AssertEquals ("whitespace char didn't get copied right",
  63. "\r\n", whitespace.Data);
  64. }
  65. [Test]
  66. public void XmlWhitespaceName ()
  67. {
  68. AssertEquals (whitespace.NodeType + " Name property broken",
  69. whitespace.Name, "#whitespace");
  70. }
  71. [Test]
  72. public void XmlWhitespaceLocalName ()
  73. {
  74. AssertEquals (whitespace.NodeType + " LocalName property broken",
  75. whitespace.LocalName, "#whitespace");
  76. }
  77. [Test]
  78. public void XmlWhitespaceNodeType ()
  79. {
  80. AssertEquals ("XmlWhitespace NodeType property broken",
  81. whitespace.NodeType.ToString (), "Whitespace");
  82. }
  83. [Test]
  84. public void XmlWhitespaceIsReadOnly ()
  85. {
  86. AssertEquals ("XmlWhitespace IsReadOnly property broken",
  87. whitespace.IsReadOnly, false);
  88. }
  89. [Test]
  90. public void XmlWhitespaceCloneNode ()
  91. {
  92. original = whitespace;
  93. shallow = whitespace.CloneNode (false); // shallow
  94. XmlNodeBaseProperties (original, shallow);
  95. deep = whitespace.CloneNode (true); // deep
  96. XmlNodeBaseProperties (original, deep);
  97. AssertEquals ("deep cloning differs from shallow cloning",
  98. deep.OuterXml, shallow.OuterXml);
  99. }
  100. }
  101. }