XmlWhiteSpaceTests.cs 2.8 KB

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