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 XmlSignificantWhitespaceTests : Assertion
24 XmlSignificantWhitespace whitespace;
25 XmlSignificantWhitespace broken;
31 public void GetReady ()
33 document = new XmlDocument ();
34 document.LoadXml ("<root><foo></foo></root>");
35 XmlElement element = document.CreateElement ("foo");
36 whitespace = document.CreateSignificantWhitespace ("\r\n");
37 element.AppendChild (whitespace);
39 doc2 = new XmlDocument ();
43 public void InnerAndOuterXml ()
45 whitespace = doc2.CreateSignificantWhitespace ("\r\n\t ");
46 AssertEquals (String.Empty, whitespace.InnerXml);
47 AssertEquals ("\r\n\t ", whitespace.OuterXml);
51 public void DataAndValue ()
53 string val = "\t\t\r\n ";
54 whitespace = doc2.CreateSignificantWhitespace (val);
55 AssertEquals ("#DataValue.1", val, whitespace.Data);
56 AssertEquals ("#DataValue.2", val, whitespace.Value);
57 whitespace.Value = val + "\t";
58 AssertEquals ("#DataValue.3", val + "\t", whitespace.Data);
61 internal void XmlNodeBaseProperties (XmlNode original, XmlNode cloned)
63 // assertequals (original.nodetype + " was incorrectly cloned.",
64 // original.baseuri, cloned.baseuri);
65 AssertNull (cloned.ParentNode);
66 AssertEquals ("Value incorrectly cloned",
67 cloned.Value, original.Value);
69 Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
73 public void XmlSignificantWhitespaceBadConstructor ()
76 broken = document.CreateSignificantWhitespace ("black");
78 } catch (ArgumentException) {
82 Fail ("Incorrect Exception thrown.");
87 public void XmlSignificantWhitespaceConstructor ()
89 AssertEquals ("whitespace char didn't get copied right",
90 "\r\n", whitespace.Data);
94 public void XmlSignificantWhitespaceName ()
96 AssertEquals (whitespace.NodeType + " Name property broken",
97 whitespace.Name, "#significant-whitespace");
101 public void XmlSignificantWhitespaceLocalName ()
103 AssertEquals (whitespace.NodeType + " LocalName property broken",
104 whitespace.LocalName, "#significant-whitespace");
108 public void XmlSignificantWhitespaceNodeType ()
110 AssertEquals ("XmlSignificantWhitespace NodeType property broken",
111 whitespace.NodeType.ToString (), "SignificantWhitespace");
115 public void XmlSignificantWhitespaceIsReadOnly ()
117 AssertEquals ("XmlSignificantWhitespace IsReadOnly property broken",
118 whitespace.IsReadOnly, false);
122 public void XmlSignificantWhitespaceCloneNode ()
124 original = whitespace;
126 shallow = whitespace.CloneNode (false); // shallow
127 XmlNodeBaseProperties (original, shallow);
129 deep = whitespace.CloneNode (true); // deep
130 XmlNodeBaseProperties (original, deep);
132 AssertEquals ("deep cloning differs from shallow cloning",
133 deep.OuterXml, shallow.OuterXml);