2 // System.Xml.XmlWhitespaceTests.cs
5 // Duncan Mak (duncan@ximian.com)
13 using NUnit.Framework;
15 namespace Ximian.Mono.Tests
17 public class XmlSignificantWhitespaceTests : TestCase
20 XmlSignificantWhitespace whitespace;
21 XmlSignificantWhitespace broken;
26 public XmlSignificantWhitespaceTests ()
27 : base ("Ximian.Mono.Tests.XmlWhitespaceTests testsuite")
31 public XmlSignificantWhitespaceTests (string name)
36 protected override void SetUp ()
38 document = new XmlDocument ();
39 document.LoadXml ("<root><foo></foo></root>");
40 XmlElement element = document.CreateElement ("foo");
41 whitespace = document.CreateSignificantWhitespace ("\r\n");
42 element.AppendChild (whitespace);
45 internal void TestXmlNodeBaseProperties (XmlNode original, XmlNode cloned)
47 // assertequals (original.nodetype + " was incorrectly cloned.",
48 // original.baseuri, cloned.baseuri);
49 AssertNull (cloned.ParentNode);
50 AssertEquals ("Value incorrectly cloned",
51 cloned.Value, original.Value);
53 Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
56 public void TestXmlSignificantWhitespaceBadConstructor ()
59 broken = document.CreateSignificantWhitespace ("black");
60 } catch (Exception e) {
61 AssertEquals ("Incorrect Exception thrown",
62 e.GetType (), Type.GetType ("System.ArgumentException"));
66 public void TestXmlSignificantWhitespaceConstructor ()
68 AssertEquals ("whitespace char didn't get copied right",
69 "\r\n", whitespace.Data);
73 public void TestXmlSignificantWhitespaceName ()
75 AssertEquals (whitespace.NodeType + " Name property broken",
76 whitespace.Name, "#significant-whitespace");
79 public void TestXmlSignificantWhitespaceLocalName ()
81 AssertEquals (whitespace.NodeType + " LocalName property broken",
82 whitespace.LocalName, "#significant-whitespace");
85 public void TestXmlSignificantWhitespaceNodeType ()
87 AssertEquals ("XmlSignificantWhitespace NodeType property broken",
88 whitespace.NodeType.ToString (), "SignificantWhitespace");
91 public void TestXmlSignificantWhitespaceIsReadOnly ()
93 AssertEquals ("XmlSignificantWhitespace IsReadOnly property broken",
94 whitespace.IsReadOnly, false);
97 public void TestXmlSignificantWhitespaceCloneNode ()
99 original = whitespace;
101 shallow = whitespace.CloneNode (false); // shallow
102 TestXmlNodeBaseProperties (original, shallow);
104 deep = whitespace.CloneNode (true); // deep
105 TestXmlNodeBaseProperties (original, deep);
107 AssertEquals ("deep cloning differs from shallow cloning",
108 deep.OuterXml, shallow.OuterXml);