2 // System.Xml.XmlDeclarationTests.cs
5 // Duncan Mak (duncan@ximian.com)
13 using NUnit.Framework;
15 namespace Ximian.Mono.Tests
17 public class XmlDeclarationTests : TestCase
21 XmlDeclaration declaration;
23 public XmlDeclarationTests ()
24 : base ("Ximian.Mono.Tests.XmlDeclarationTests testsuite")
28 public XmlDeclarationTests (string name)
33 protected override void SetUp ()
35 document = new XmlDocument ();
36 document.LoadXml ("<foo><bar></bar></foo>");
37 declaration = document.CreateXmlDeclaration ("1.0", null, null);
40 internal void TestXmlNodeBaseProperties (XmlNode original, XmlNode cloned)
42 // assertequals (original.nodetype + " was incorrectly cloned.",
43 // original.baseuri, cloned.baseuri);
44 AssertNull (cloned.ParentNode);
46 AssertEquals ("Value incorrectly cloned",
47 original.Value, cloned.Value);
49 Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
52 public void TestConstructor ()
55 XmlDeclaration broken = document.CreateXmlDeclaration ("2.0", null, null);
56 } catch (Exception e) {
57 AssertEquals ("Wrong exception was thrown",
58 e.GetType (), Type.GetType ("System.ArgumentException"));
62 public void TestNodeType ()
64 AssertEquals ("incorrect NodeType returned", XmlNodeType.XmlDeclaration, declaration.NodeType);
67 public void TestNames ()
69 AssertEquals ("Name is incorrect", "xml", declaration.Name);
70 AssertEquals ("LocalName is incorrect", "xml", declaration.LocalName);
73 public void TestEncodingProperty ()
75 XmlDeclaration d1 = document.CreateXmlDeclaration ("1.0", "foo", null);
76 AssertEquals ("Encoding property", "foo", d1.Encoding);
78 XmlDeclaration d2 = document.CreateXmlDeclaration ("1.0", null, null);
79 AssertEquals ("null Encoding property", String.Empty, d2.Encoding);
82 public void TestStandaloneProperty ()
84 XmlDeclaration d1 = document.CreateXmlDeclaration ("1.0", null, "yes");
85 AssertEquals ("Yes standalone property", "yes", d1.Standalone);
87 XmlDeclaration d2 = document.CreateXmlDeclaration ("1.0", null, "no");
88 AssertEquals ("No standalone property", "no", d2.Standalone);
90 XmlDeclaration d3 = document.CreateXmlDeclaration ("1.0", null, null);
91 AssertEquals ("null Standalone property", String.Empty, d3.Standalone);
94 public void TestValueProperty ()
96 XmlDeclaration d = document.CreateXmlDeclaration ("1.0", "UTF-8", "yes");
97 AssertEquals ("Value property", "version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"",
101 public void TestXmlCommentCloneNode ()
103 XmlNode original = declaration;
105 XmlNode shallow = declaration.CloneNode (false); // shallow
106 TestXmlNodeBaseProperties (original, shallow);
108 XmlNode deep = declaration.CloneNode (true); // deep
109 TestXmlNodeBaseProperties (original, deep);
111 AssertEquals ("deep cloning differs from shallow cloning",
112 deep.OuterXml, shallow.OuterXml);