2
0

XmlCommentTests.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. //
  2. // System.Xml.XmlCommentTests.cs
  3. //
  4. // Author: Duncan Mak ([email protected])
  5. // Author: Martin Willemoes Hansen ([email protected])
  6. //
  7. // (C) Ximian, Inc.
  8. // (C) 2003 Martin Willemoes Hansen
  9. //
  10. using System;
  11. using System.Xml;
  12. using NUnit.Framework;
  13. namespace MonoTests.System.Xml
  14. {
  15. [TestFixture]
  16. public class XmlCommentTests
  17. {
  18. XmlDocument document;
  19. XmlComment comment;
  20. XmlNode original;
  21. XmlNode deep;
  22. XmlNode shallow;
  23. [SetUp]
  24. public void GetReady ()
  25. {
  26. document = new XmlDocument ();
  27. }
  28. [Test]
  29. public void XmlCommentCloneNode ()
  30. {
  31. document.LoadXml ("<root><foo></foo></root>");
  32. comment = document.CreateComment ("Comment");
  33. original = comment;
  34. shallow = comment.CloneNode (false); // shallow
  35. XmlNodeBaseProperties (original, shallow);
  36. deep = comment.CloneNode (true); // deep
  37. XmlNodeBaseProperties (original, deep);
  38. Assert.AreEqual (original.Value, deep.Value, "Value incorrectly cloned");
  39. Assert.AreEqual (deep.OuterXml, shallow.OuterXml, "deep cloning differs from shallow cloning");
  40. }
  41. [Test]
  42. public void XmlCommentInnerAndOuterXml ()
  43. {
  44. comment = document.CreateComment ("foo");
  45. Assert.AreEqual (String.Empty, comment.InnerXml);
  46. Assert.AreEqual ("<!--foo-->", comment.OuterXml);
  47. }
  48. [Test]
  49. public void XmlCommentIsReadOnly ()
  50. {
  51. document.LoadXml ("<root><foo></foo></root>");
  52. comment = document.CreateComment ("Comment");
  53. Assert.AreEqual (comment.IsReadOnly, false, "XmlComment IsReadOnly property broken");
  54. }
  55. [Test]
  56. public void XmlCommentLocalName ()
  57. {
  58. document.LoadXml ("<root><foo></foo></root>");
  59. comment = document.CreateComment ("Comment");
  60. Assert.AreEqual (comment.LocalName, "#comment", comment.NodeType + " LocalName property broken");
  61. }
  62. [Test]
  63. public void XmlCommentName ()
  64. {
  65. document.LoadXml ("<root><foo></foo></root>");
  66. comment = document.CreateComment ("Comment");
  67. Assert.AreEqual (comment.Name, "#comment", comment.NodeType + " Name property broken");
  68. }
  69. [Test]
  70. public void XmlCommentNodeType ()
  71. {
  72. document.LoadXml ("<root><foo></foo></root>");
  73. comment = document.CreateComment ("Comment");
  74. Assert.AreEqual (comment.NodeType.ToString (), "Comment", "XmlComment NodeType property broken");
  75. }
  76. internal void XmlNodeBaseProperties (XmlNode original, XmlNode cloned)
  77. {
  78. document.LoadXml ("<root><foo></foo></root>");
  79. comment = document.CreateComment ("Comment");
  80. // assertequals (original.nodetype + " was incorrectly cloned.",
  81. // original.baseuri, cloned.baseuri);
  82. Assert.IsNull (cloned.ParentNode);
  83. Assert.AreEqual (original.Value, cloned.Value, "Value incorrectly cloned");
  84. Assert.IsTrue (!Object.ReferenceEquals (original, cloned), "Copies, not pointers");
  85. }
  86. }
  87. }