XmlDeclarationTests.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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 Ximian.Mono.Tests
  13. {
  14. public class XmlDeclarationTests : TestCase
  15. {
  16. XmlDocument document;
  17. XmlDeclaration declaration;
  18. public XmlDeclarationTests ()
  19. : base ("Ximian.Mono.Tests.XmlDeclarationTests testsuite")
  20. {
  21. }
  22. public XmlDeclarationTests (string name)
  23. : base (name)
  24. {
  25. }
  26. protected override void SetUp ()
  27. {
  28. document = new XmlDocument ();
  29. document.LoadXml ("<foo><bar></bar></foo>");
  30. declaration = document.CreateXmlDeclaration ("1.0", null, null);
  31. }
  32. internal void TestXmlNodeBaseProperties (XmlNode original, XmlNode cloned)
  33. {
  34. // assertequals (original.nodetype + " was incorrectly cloned.",
  35. // original.baseuri, cloned.baseuri);
  36. AssertNull (cloned.ParentNode);
  37. AssertEquals ("Value incorrectly cloned",
  38. original.Value, cloned.Value);
  39. Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
  40. }
  41. public void TestConstructor ()
  42. {
  43. try {
  44. XmlDeclaration broken = document.CreateXmlDeclaration ("2.0", null, null);
  45. } catch (Exception e) {
  46. AssertEquals ("Wrong exception was thrown",
  47. e.GetType (), Type.GetType ("System.ArgumentException"));
  48. }
  49. }
  50. public void TestNodeType ()
  51. {
  52. AssertEquals ("incorrect NodeType returned", XmlNodeType.XmlDeclaration, declaration.NodeType);
  53. }
  54. public void TestNames ()
  55. {
  56. AssertEquals ("Name is incorrect", "xml", declaration.Name);
  57. AssertEquals ("LocalName is incorrect", "xml", declaration.LocalName);
  58. }
  59. public void TestEncodingProperty ()
  60. {
  61. XmlDeclaration d1 = document.CreateXmlDeclaration ("1.0", "foo", null);
  62. AssertEquals ("Encoding property", "foo", d1.Encoding);
  63. XmlDeclaration d2 = document.CreateXmlDeclaration ("1.0", null, null);
  64. AssertEquals ("null Encoding property", String.Empty, d2.Encoding);
  65. }
  66. public void TestStandaloneProperty ()
  67. {
  68. XmlDeclaration d1 = document.CreateXmlDeclaration ("1.0", null, "yes");
  69. AssertEquals ("Yes standalone property", "yes", d1.Standalone);
  70. XmlDeclaration d2 = document.CreateXmlDeclaration ("1.0", null, "no");
  71. AssertEquals ("No standalone property", "no", d2.Standalone);
  72. XmlDeclaration d3 = document.CreateXmlDeclaration ("1.0", null, null);
  73. AssertEquals ("null Standalone property", String.Empty, d3.Standalone);
  74. }
  75. public void TestValueProperty ()
  76. {
  77. XmlDeclaration d = document.CreateXmlDeclaration ("1.0", "UTF-8", "yes");
  78. AssertEquals ("Value property", "version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"",
  79. d.Value);
  80. }
  81. public void TestXmlCommentCloneNode ()
  82. {
  83. XmlNode original = declaration;
  84. XmlNode shallow = declaration.CloneNode (false); // shallow
  85. TestXmlNodeBaseProperties (original, shallow);
  86. XmlNode deep = declaration.CloneNode (true); // deep
  87. TestXmlNodeBaseProperties (original, deep);
  88. AssertEquals ("deep cloning differs from shallow cloning",
  89. deep.OuterXml, shallow.OuterXml);
  90. }
  91. }
  92. }