XmlDeclarationTests.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. //
  2. // System.Xml.XmlDeclarationTests.cs
  3. //
  4. // Author:
  5. // Duncan Mak ([email protected])
  6. //
  7. // (C) Ximian, Inc.
  8. //
  9. using System;
  10. using System.Xml;
  11. using NUnit.Framework;
  12. namespace MonoTests.System.Xml
  13. {
  14. public class XmlDeclarationTests : TestCase
  15. {
  16. XmlDocument document;
  17. XmlDeclaration declaration;
  18. public XmlDeclarationTests () : base ("MonoTests.System.Xml.XmlDeclarationTests testsuite") {}
  19. public XmlDeclarationTests (string name) : base (name) {}
  20. protected override void SetUp ()
  21. {
  22. document = new XmlDocument ();
  23. document.LoadXml ("<foo><bar></bar></foo>");
  24. declaration = document.CreateXmlDeclaration ("1.0", null, null);
  25. }
  26. public void TestInnerAndOuterXml ()
  27. {
  28. declaration = document.CreateXmlDeclaration ("1.0", null, null);
  29. AssertEquals (String.Empty, declaration.InnerXml);
  30. AssertEquals ("<?xml version=\"1.0\"?>", declaration.OuterXml);
  31. declaration = document.CreateXmlDeclaration ("1.0", "doesn't check", null);
  32. AssertEquals (String.Empty, declaration.InnerXml);
  33. AssertEquals ("<?xml version=\"1.0\" encoding=\"doesn't check\"?>", declaration.OuterXml);
  34. declaration = document.CreateXmlDeclaration ("1.0", null, "yes");
  35. AssertEquals (String.Empty, declaration.InnerXml);
  36. AssertEquals ("<?xml version=\"1.0\" standalone=\"yes\"?>", declaration.OuterXml);
  37. declaration = document.CreateXmlDeclaration ("1.0", "foo", "no");
  38. AssertEquals (String.Empty, declaration.InnerXml);
  39. AssertEquals ("<?xml version=\"1.0\" encoding=\"foo\" standalone=\"no\"?>", declaration.OuterXml);
  40. }
  41. internal void TestXmlNodeBaseProperties (XmlNode original, XmlNode cloned)
  42. {
  43. // assertequals (original.nodetype + " was incorrectly cloned.",
  44. // original.baseuri, cloned.baseuri);
  45. AssertNull (cloned.ParentNode);
  46. AssertEquals ("Value incorrectly cloned",
  47. original.Value, cloned.Value);
  48. Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
  49. }
  50. public void TestConstructor ()
  51. {
  52. try {
  53. XmlDeclaration broken = document.CreateXmlDeclaration ("2.0", null, null);
  54. } catch (ArgumentException) {
  55. return;
  56. } catch (Exception e) {
  57. Fail("first arg null, wrong exception: " + e.ToString());
  58. }
  59. }
  60. public void TestNodeType ()
  61. {
  62. AssertEquals ("incorrect NodeType returned", XmlNodeType.XmlDeclaration, declaration.NodeType);
  63. }
  64. public void TestNames ()
  65. {
  66. AssertEquals ("Name is incorrect", "xml", declaration.Name);
  67. AssertEquals ("LocalName is incorrect", "xml", declaration.LocalName);
  68. }
  69. public void TestEncodingProperty ()
  70. {
  71. XmlDeclaration d1 = document.CreateXmlDeclaration ("1.0", "foo", null);
  72. AssertEquals ("Encoding property", "foo", d1.Encoding);
  73. XmlDeclaration d2 = document.CreateXmlDeclaration ("1.0", null, null);
  74. AssertEquals ("null Encoding property", String.Empty, d2.Encoding);
  75. }
  76. public void TestStandaloneProperty ()
  77. {
  78. XmlDeclaration d1 = document.CreateXmlDeclaration ("1.0", null, "yes");
  79. AssertEquals ("Yes standalone property", "yes", d1.Standalone);
  80. XmlDeclaration d2 = document.CreateXmlDeclaration ("1.0", null, "no");
  81. AssertEquals ("No standalone property", "no", d2.Standalone);
  82. XmlDeclaration d3 = document.CreateXmlDeclaration ("1.0", null, null);
  83. AssertEquals ("null Standalone property", String.Empty, d3.Standalone);
  84. }
  85. public void TestValueProperty ()
  86. {
  87. XmlDeclaration d = document.CreateXmlDeclaration ("1.0", "UTF-8", "yes");
  88. AssertEquals ("Value property", "version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"",
  89. d.Value);
  90. }
  91. public void TestXmlCommentCloneNode ()
  92. {
  93. XmlNode original = declaration;
  94. XmlNode shallow = declaration.CloneNode (false); // shallow
  95. TestXmlNodeBaseProperties (original, shallow);
  96. XmlNode deep = declaration.CloneNode (true); // deep
  97. TestXmlNodeBaseProperties (original, deep);
  98. AssertEquals ("deep cloning differs from shallow cloning",
  99. deep.OuterXml, shallow.OuterXml);
  100. }
  101. }
  102. }