* Removed AllTests.cs and TheTests.cs
[mono.git] / mcs / class / System.XML / Test / XmlWhiteSpaceTests.cs
1 //
2 // System.Xml.XmlWhitespaceTests.cs
3 //
4 // Authors:
5 //      Duncan Mak  (duncan@ximian.com)
6 //      Martin Willemoes Hansen (mwh@sysrq.dk)
7 //
8 // (C) Ximian, Inc.
9 // (C) 2003 Martin Willemoes Hansen
10 //
11
12 using System;
13 using System.Xml;
14
15 using NUnit.Framework;
16
17 namespace MonoTests.System.Xml
18 {
19         [TestFixture]
20         public class XmlWhiteSpaceTests
21         {
22                 XmlDocument document;
23                 XmlDocument doc2;
24                 XmlWhitespace whitespace;
25                 XmlWhitespace broken;
26                 XmlNode original;
27                 XmlNode deep;
28                 XmlNode shallow;
29                 
30                 [SetUp]
31                 public void GetReady ()
32                 {
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);
38
39                         doc2 = new XmlDocument ();
40                         doc2.PreserveWhitespace = true;
41                 }
42
43                 [Test]
44                 public void InnerAndOuterXml ()
45                 {
46                         whitespace = doc2.CreateWhitespace ("\r\n\t ");
47                         Assertion.AssertEquals (String.Empty, whitespace.InnerXml);
48                         Assertion.AssertEquals ("\r\n\t ", whitespace.OuterXml);
49                 }
50                         
51                 internal void XmlNodeBaseProperties (XmlNode original, XmlNode cloned)
52                 {
53 //                      assertequals (original.nodetype + " was incorrectly cloned.",
54 //                                    original.baseuri, cloned.baseuri);                        
55                         Assertion.AssertNull (cloned.ParentNode);
56                         Assertion.AssertEquals ("Value incorrectly cloned",
57                                        cloned.Value, original.Value);
58                         
59                         Assertion.Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
60                 }
61
62                 [Test]
63                 public void XmlWhitespaceBadConstructor ()
64                 {
65                         try {
66                                 broken = document.CreateWhitespace ("black");                           
67
68                         } catch (ArgumentException) {
69                                 return;
70
71                         } catch (Exception) {
72                                 Assertion.Fail ("Incorrect Exception thrown.");
73                         }
74                 }
75
76                 [Test]
77                 public void XmlWhitespaceConstructor ()
78                 {
79                         Assertion.AssertEquals ("whitespace char didn't get copied right",
80                                       "\r\n", whitespace.Data);
81                 }
82                                
83                 [Test]
84                 public void XmlWhitespaceName ()
85                 {
86                         Assertion.AssertEquals (whitespace.NodeType + " Name property broken",
87                                       whitespace.Name, "#whitespace");
88                 }
89
90                 [Test]
91                 public void XmlWhitespaceLocalName ()
92                 {
93                         Assertion.AssertEquals (whitespace.NodeType + " LocalName property broken",
94                                       whitespace.LocalName, "#whitespace");
95                 }
96
97                 [Test]
98                 public void XmlWhitespaceNodeType ()
99                 {
100                         Assertion.AssertEquals ("XmlWhitespace NodeType property broken",
101                                       whitespace.NodeType.ToString (), "Whitespace");
102                 }
103
104                 [Test]
105                 public void XmlWhitespaceIsReadOnly ()
106                 {
107                         Assertion.AssertEquals ("XmlWhitespace IsReadOnly property broken",
108                                       whitespace.IsReadOnly, false);
109                 }
110
111                 [Test]
112                 public void XmlWhitespaceCloneNode ()
113                 {
114                         original = whitespace;
115
116                         shallow = whitespace.CloneNode (false); // shallow
117                         XmlNodeBaseProperties (original, shallow);
118                                                 
119                         deep = whitespace.CloneNode (true); // deep
120                         XmlNodeBaseProperties (original, deep);                 
121
122                         Assertion.AssertEquals ("deep cloning differs from shallow cloning",
123                                       deep.OuterXml, shallow.OuterXml);
124                 }
125         }
126 }