(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / System.XML / Test / System.Xml / XmlDeclarationTests.cs
blob6e025b72bf7dee714ab6503f40b756986293d2e2
1 //
2 // System.Xml.XmlDeclarationTests.cs
3 //
4 // Author: Duncan Mak (duncan@ximian.com)
5 // Author: Martin Willemoes Hansen (mwh@sysrq.dk)
6 //
7 // (C) Ximian, Inc.
8 // (C) 2003 Martin Willemoes Hansen
9 //
11 using System;
12 using System.Xml;
14 using NUnit.Framework;
16 namespace MonoTests.System.Xml
18 [TestFixture]
19 public class XmlDeclarationTests : Assertion
21 XmlDocument document;
22 XmlDeclaration declaration;
24 [SetUp]
25 public void GetReady ()
27 document = new XmlDocument ();
28 document.LoadXml ("<foo><bar></bar></foo>");
29 declaration = document.CreateXmlDeclaration ("1.0", null, null);
32 [Test]
33 public void InnerAndOuterXml ()
35 declaration = document.CreateXmlDeclaration ("1.0", null, null);
36 AssertEquals (String.Empty, declaration.InnerXml);
37 AssertEquals ("<?xml version=\"1.0\"?>", declaration.OuterXml);
39 declaration = document.CreateXmlDeclaration ("1.0", "doesn't check", null);
40 AssertEquals (String.Empty, declaration.InnerXml);
41 AssertEquals ("<?xml version=\"1.0\" encoding=\"doesn't check\"?>", declaration.OuterXml);
43 declaration = document.CreateXmlDeclaration ("1.0", null, "yes");
44 AssertEquals (String.Empty, declaration.InnerXml);
45 AssertEquals ("<?xml version=\"1.0\" standalone=\"yes\"?>", declaration.OuterXml);
47 declaration = document.CreateXmlDeclaration ("1.0", "foo", "no");
48 AssertEquals (String.Empty, declaration.InnerXml);
49 AssertEquals ("<?xml version=\"1.0\" encoding=\"foo\" standalone=\"no\"?>", declaration.OuterXml);
52 internal void XmlNodeBaseProperties (XmlNode original, XmlNode cloned)
54 // assertequals (original.nodetype + " was incorrectly cloned.",
55 // original.baseuri, cloned.baseuri);
56 AssertNull (cloned.ParentNode);
58 AssertEquals ("Value incorrectly cloned",
59 original.Value, cloned.Value);
61 Assert ("Copies, not pointers", !Object.ReferenceEquals (original,cloned));
64 [Test]
65 public void Constructor ()
67 try {
68 XmlDeclaration broken = document.CreateXmlDeclaration ("2.0", null, null);
69 } catch (ArgumentException) {
70 return;
72 } catch (Exception e) {
73 Fail("first arg null, wrong exception: " + e.ToString());
77 [Test]
78 public void NodeType ()
80 AssertEquals ("incorrect NodeType returned", XmlNodeType.XmlDeclaration, declaration.NodeType);
83 [Test]
84 public void Names ()
86 AssertEquals ("Name is incorrect", "xml", declaration.Name);
87 AssertEquals ("LocalName is incorrect", "xml", declaration.LocalName);
90 [Test]
91 public void EncodingProperty ()
93 XmlDeclaration d1 = document.CreateXmlDeclaration ("1.0", "foo", null);
94 AssertEquals ("Encoding property", "foo", d1.Encoding);
96 XmlDeclaration d2 = document.CreateXmlDeclaration ("1.0", null, null);
97 AssertEquals ("null Encoding property", String.Empty, d2.Encoding);
100 [Test]
101 public void ValidInnerText ()
103 declaration.InnerText = "version='1.0'";
105 declaration.InnerText = "version='1.0' encoding='euc-jp'";
107 declaration.InnerText = "version='1.0' standalone='no'";
109 declaration.InnerText = "version='1.0' encoding='iso-8859-1' standalone=\"yes\"";
111 declaration.InnerText = @"version = '1.0' encoding =
112 'euc-jp' standalone = 'yes' ";
114 declaration.InnerText = " version = '1.0'";
117 [Test]
118 [ExpectedException (typeof (XmlException))]
119 public void InvalidInnerText ()
121 declaration.InnerText = "version='1.0a'";
124 [Test]
125 [ExpectedException (typeof (XmlException))]
126 public void InvalidInnerText2 ()
128 declaration.InnerText = "version='1.0' encoding='euc-kr\"";
131 [Test]
132 [ExpectedException (typeof (XmlException))]
133 public void InvalidInnerText3 ()
135 declaration.InnerText = "version='2.0'";
138 [Test]
139 [ExpectedException (typeof (XmlException))]
140 public void InvalidInnerText4 ()
142 declaration.InnerText = "version='1.0' standalone='Yeah!!!!!'";
145 [Test]
146 [ExpectedException (typeof (XmlException))]
147 public void InvalidInnerText5 ()
149 declaration.InnerText = "version='1.0'standalone='yes'";
152 [Test]
153 [ExpectedException (typeof (XmlException))]
154 public void InvalidInnerText6 ()
156 declaration.InnerText = "version='1.0'standalone='yes' encoding='utf-8'";
159 [Test]
160 public void StandaloneProperty ()
162 XmlDeclaration d1 = document.CreateXmlDeclaration ("1.0", null, "yes");
163 AssertEquals ("Yes standalone property", "yes", d1.Standalone);
165 XmlDeclaration d2 = document.CreateXmlDeclaration ("1.0", null, "no");
166 AssertEquals ("No standalone property", "no", d2.Standalone);
168 XmlDeclaration d3 = document.CreateXmlDeclaration ("1.0", null, null);
169 AssertEquals ("null Standalone property", String.Empty, d3.Standalone);
172 [Test]
173 public void ValueProperty ()
175 string expected = "version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"" ;
177 XmlDeclaration d = document.CreateXmlDeclaration ("1.0", "ISO-8859-1", "yes");
178 AssertEquals ("Value property", expected, d.Value);
180 d.Value = expected;
181 AssertEquals ("Value round-trip", expected, d.Value);
183 d.Value = " " + expected;
184 AssertEquals ("Value round-trip (padded)", expected, d.Value);
186 d.Value = "version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"" ;
187 AssertEquals ("Value round-trip (padded 2)", expected, d.Value);
189 d.Value = "version=\"1.0\"\tencoding=\"ISO-8859-1\" standalone=\"yes\"" ;
190 AssertEquals ("Value round-trip (\\t)", expected, d.Value);
192 d.Value = "version=\"1.0\"\n encoding=\"ISO-8859-1\" standalone=\"yes\"" ;
193 AssertEquals ("Value round-trip (\\n)", expected, d.Value);
195 d.Value = "version=\"1.0\" encoding = \"ISO-8859-1\" standalone = \"yes\"" ;
196 AssertEquals ("Value round-trip (spaces)", expected, d.Value);
198 d.Value = "version='1.0' encoding='ISO-8859-1' standalone='yes'" ;
199 AssertEquals ("Value round-trip ('s)", expected, d.Value);
203 [Test]
204 public void XmlCommentCloneNode ()
206 XmlNode original = declaration;
208 XmlNode shallow = declaration.CloneNode (false); // shallow
209 XmlNodeBaseProperties (original, shallow);
211 XmlNode deep = declaration.CloneNode (true); // deep
212 XmlNodeBaseProperties (original, deep);
214 AssertEquals ("deep cloning differs from shallow cloning",
215 deep.OuterXml, shallow.OuterXml);