2 // System.Xml.XmlWhitespaceTests.cs
5 // Duncan Mak (duncan@ximian.com)
6 // Martin Willemoes Hansen (mwh@sysrq.dk)
9 // (C) 2003 Martin Willemoes Hansen
15 using NUnit
.Framework
;
17 namespace MonoTests
.System
.Xml
20 public class XmlWhiteSpaceTests
: Assertion
24 XmlWhitespace whitespace
;
31 public void GetReady ()
33 document
= new XmlDocument ();
34 document
.LoadXml ("<root><foo></foo></root>");
35 XmlElement element
= document
.CreateElement ("foo");
36 whitespace
= document
.CreateWhitespace ("\r\n");
37 element
.AppendChild (whitespace
);
39 doc2
= new XmlDocument ();
40 doc2
.PreserveWhitespace
= true;
44 public void InnerAndOuterXml ()
46 whitespace
= doc2
.CreateWhitespace ("\r\n\t ");
47 AssertEquals (String
.Empty
, whitespace
.InnerXml
);
48 AssertEquals ("\r\n\t ", whitespace
.OuterXml
);
51 internal void XmlNodeBaseProperties (XmlNode original
, XmlNode cloned
)
53 // assertequals (original.nodetype + " was incorrectly cloned.",
54 // original.baseuri, cloned.baseuri);
55 AssertNull (cloned
.ParentNode
);
56 AssertEquals ("Value incorrectly cloned",
57 cloned
.Value
, original
.Value
);
59 Assert ("Copies, not pointers", !Object
.ReferenceEquals (original
,cloned
));
63 [ExpectedException (typeof (ArgumentException
))]
64 public void XmlWhitespaceBadConstructor ()
66 broken
= document
.CreateWhitespace ("black");
70 public void XmlWhitespaceConstructor ()
72 AssertEquals ("whitespace char didn't get copied right",
73 "\r\n", whitespace
.Data
);
77 public void XmlWhitespaceName ()
79 AssertEquals (whitespace
.NodeType
+ " Name property broken",
80 whitespace
.Name
, "#whitespace");
84 public void XmlWhitespaceLocalName ()
86 AssertEquals (whitespace
.NodeType
+ " LocalName property broken",
87 whitespace
.LocalName
, "#whitespace");
91 public void XmlWhitespaceNodeType ()
93 AssertEquals ("XmlWhitespace NodeType property broken",
94 whitespace
.NodeType
.ToString (), "Whitespace");
98 public void XmlWhitespaceIsReadOnly ()
100 AssertEquals ("XmlWhitespace IsReadOnly property broken",
101 whitespace
.IsReadOnly
, false);
105 public void XmlWhitespaceCloneNode ()
107 original
= whitespace
;
109 shallow
= whitespace
.CloneNode (false); // shallow
110 XmlNodeBaseProperties (original
, shallow
);
112 deep
= whitespace
.CloneNode (true); // deep
113 XmlNodeBaseProperties (original
, deep
);
115 AssertEquals ("deep cloning differs from shallow cloning",
116 deep
.OuterXml
, shallow
.OuterXml
);