2009-06-12 Bill Holmes <billholmes54@gmail.com>
[mono.git] / mcs / class / System.XML / Test / System.Xml / XmlCommentTests.cs
1 //
2 // System.Xml.XmlCommentTests.cs
3 //
4 // Author: Duncan Mak  (duncan@ximian.com)
5 // Author: Martin Willemoes Hansen (mwh@sysrq.dk)
6 //
7 // (C) Ximian, Inc.
8 // (C) 2003 Martin Willemoes Hansen
9 //
10
11 using System;
12 using System.Xml;
13
14 using NUnit.Framework;
15
16 namespace MonoTests.System.Xml
17 {
18         [TestFixture]
19         public class XmlCommentTests : Assertion
20         {
21                 XmlDocument document;
22                 XmlComment comment;
23                 XmlNode original;
24                 XmlNode deep;
25                 XmlNode shallow;
26
27                 [SetUp]
28                 public void GetReady ()
29                 {
30                         document = new XmlDocument ();
31                 }
32
33                 [Test]
34                 public void XmlCommentCloneNode ()
35                 {
36                         document.LoadXml ("<root><foo></foo></root>");
37                         comment = document.CreateComment ("Comment");
38                         original = comment;
39
40                         shallow = comment.CloneNode (false); // shallow
41                         XmlNodeBaseProperties (original, shallow);
42                         
43                         deep = comment.CloneNode (true); // deep
44                         XmlNodeBaseProperties (original, deep);
45                         AssertEquals ("Value incorrectly cloned",
46                                 original.Value, deep.Value);
47
48                         AssertEquals ("deep cloning differs from shallow cloning",
49                                 deep.OuterXml, shallow.OuterXml);
50                 }
51
52                 [Test]
53                 public void XmlCommentInnerAndOuterXml ()
54                 {
55                         comment = document.CreateComment ("foo");
56                         AssertEquals (String.Empty, comment.InnerXml);
57                         AssertEquals ("<!--foo-->", comment.OuterXml);
58                 }
59
60                 [Test]
61                 public void XmlCommentIsReadOnly ()
62                 {
63                         document.LoadXml ("<root><foo></foo></root>");
64                         comment = document.CreateComment ("Comment");
65                         AssertEquals ("XmlComment IsReadOnly property broken",
66                                 comment.IsReadOnly, false);
67                 }
68
69                 [Test]
70                 public void XmlCommentLocalName ()
71                 {
72                         document.LoadXml ("<root><foo></foo></root>");
73                         comment = document.CreateComment ("Comment");
74                         AssertEquals (comment.NodeType + " LocalName property broken",
75                                       comment.LocalName, "#comment");
76                 }
77
78                 [Test]
79                 public void XmlCommentName ()
80                 {
81                         document.LoadXml ("<root><foo></foo></root>");
82                         comment = document.CreateComment ("Comment");
83                         AssertEquals (comment.NodeType + " Name property broken",
84                                 comment.Name, "#comment");
85                 }
86
87                 [Test]
88                 public void XmlCommentNodeType ()
89                 {
90                         document.LoadXml ("<root><foo></foo></root>");
91                         comment = document.CreateComment ("Comment");
92                         AssertEquals ("XmlComment NodeType property broken",
93                                       comment.NodeType.ToString (), "Comment");
94                 }
95
96                 internal void XmlNodeBaseProperties (XmlNode original, XmlNode cloned)
97                 {
98                         document.LoadXml ("<root><foo></foo></root>");
99                         comment = document.CreateComment ("Comment");
100
101                         //                      assertequals (original.nodetype + " was incorrectly cloned.",
102                         //                                    original.baseuri, cloned.baseuri);                        
103
104                         AssertNull (cloned.ParentNode);
105                         AssertEquals ("Value incorrectly cloned",
106                                 original.Value, cloned.Value);
107
108                         Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
109                 }
110        
111         }
112 }