2 // System.Xml.XmlWhitespaceTests.cs
5 // Duncan Mak (duncan@ximian.com)
13 using NUnit.Framework;
15 namespace MonoTests.System.Xml
17 public class XmlWhitespaceTests : TestCase
21 XmlWhitespace whitespace;
27 public XmlWhitespaceTests () : base ("MonoTests.System.Xml.XmlWhitespaceTests testsuite") {}
28 public XmlWhitespaceTests (string name) : base (name) {}
30 protected override void SetUp ()
32 document = new XmlDocument ();
33 document.LoadXml ("<root><foo></foo></root>");
34 XmlElement element = document.CreateElement ("foo");
35 whitespace = document.CreateWhitespace ("\r\n");
36 element.AppendChild (whitespace);
38 doc2 = new XmlDocument ();
39 doc2.PreserveWhitespace = true;
42 public void TestInnerAndOuterXml ()
44 whitespace = doc2.CreateWhitespace ("\r\n\t ");
45 AssertEquals (String.Empty, whitespace.InnerXml);
46 AssertEquals ("\r\n\t ", whitespace.OuterXml);
49 internal void TestXmlNodeBaseProperties (XmlNode original, XmlNode cloned)
51 // assertequals (original.nodetype + " was incorrectly cloned.",
52 // original.baseuri, cloned.baseuri);
53 AssertNull (cloned.ParentNode);
54 AssertEquals ("Value incorrectly cloned",
55 cloned.Value, original.Value);
57 Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
60 public void TestXmlWhitespaceBadConstructor ()
63 broken = document.CreateWhitespace ("black");
65 } catch (ArgumentException) {
69 Fail ("Incorrect Exception thrown.");
73 public void TestXmlWhitespaceConstructor ()
75 AssertEquals ("whitespace char didn't get copied right",
76 "\r\n", whitespace.Data);
80 public void TestXmlWhitespaceName ()
82 AssertEquals (whitespace.NodeType + " Name property broken",
83 whitespace.Name, "#whitespace");
86 public void TestXmlWhitespaceLocalName ()
88 AssertEquals (whitespace.NodeType + " LocalName property broken",
89 whitespace.LocalName, "#whitespace");
92 public void TestXmlWhitespaceNodeType ()
94 AssertEquals ("XmlWhitespace NodeType property broken",
95 whitespace.NodeType.ToString (), "Whitespace");
98 public void TestXmlWhitespaceIsReadOnly ()
100 AssertEquals ("XmlWhitespace IsReadOnly property broken",
101 whitespace.IsReadOnly, false);
104 public void TestXmlWhitespaceCloneNode ()
106 original = whitespace;
108 shallow = whitespace.CloneNode (false); // shallow
109 TestXmlNodeBaseProperties (original, shallow);
111 deep = whitespace.CloneNode (true); // deep
112 TestXmlNodeBaseProperties (original, deep);
114 AssertEquals ("deep cloning differs from shallow cloning",
115 deep.OuterXml, shallow.OuterXml);