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
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 Assert.AreEqual (String.Empty, whitespace.InnerXml);
48 Assert.AreEqual ("\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 Assert.IsNull (cloned.ParentNode);
56 Assert.AreEqual (cloned.Value, original.Value, "Value incorrectly cloned");
58 Assert.IsTrue (!Object.ReferenceEquals (original, cloned), "Copies, not pointers");
62 [ExpectedException (typeof (ArgumentException))]
63 public void XmlWhitespaceBadConstructor ()
65 broken = document.CreateWhitespace ("black");
69 public void XmlWhitespaceConstructor ()
71 Assert.AreEqual ("\r\n", whitespace.Data, "whitespace char didn't get copied right");
75 public void XmlWhitespaceName ()
77 Assert.AreEqual (whitespace.Name, "#whitespace", whitespace.NodeType + " Name property broken");
81 public void XmlWhitespaceLocalName ()
83 Assert.AreEqual (whitespace.LocalName, "#whitespace", whitespace.NodeType + " LocalName property broken");
87 public void XmlWhitespaceNodeType ()
89 Assert.AreEqual (whitespace.NodeType.ToString (), "Whitespace", "XmlWhitespace NodeType property broken");
93 public void XmlWhitespaceIsReadOnly ()
95 Assert.AreEqual (whitespace.IsReadOnly, false, "XmlWhitespace IsReadOnly property broken");
99 public void XmlWhitespaceCloneNode ()
101 original = whitespace;
103 shallow = whitespace.CloneNode (false); // shallow
104 XmlNodeBaseProperties (original, shallow);
106 deep = whitespace.CloneNode (true); // deep
107 XmlNodeBaseProperties (original, deep);
109 Assert.AreEqual (deep.OuterXml, shallow.OuterXml, "deep cloning differs from shallow cloning");