2 // System.Xml.XmlDocumentTypeTests.cs
4 // Author: Duncan Mak (duncan@ximian.com)
5 // Author: Martin Willemoes Hansen (mwh@sysrq.dk)
8 // (C) 2003 Martin Willemoes Hansen
14 using NUnit
.Framework
;
16 namespace MonoTests
.System
.Xml
19 public class XmlDocumentTypeTests
: Assertion
22 XmlDocumentType docType
;
25 public void GetReady ()
27 document
= new XmlDocument ();
28 docType
= document
.CreateDocumentType ("book", null, null, "<!ELEMENT book ANY>");
29 document
.AppendChild (docType
);
32 internal void XmlNodeBaseProperties (XmlNode original
, XmlNode cloned
)
34 // assertequals (original.nodetype + " was incorrectly cloned.",
35 // original.baseuri, cloned.baseuri);
37 AssertNull (cloned
.ParentNode
);
38 AssertEquals ("Value incorrectly cloned",
39 original
.Value
, cloned
.Value
);
41 Assert ("Copies, not pointers", !Object
.ReferenceEquals (original
, cloned
));
47 AssertEquals ("Getting Name property", "book", docType
.Name
);
51 public void LocalName ()
53 AssertEquals ("Getting LocalName property", "book", docType
.LocalName
);
57 public void InternalSubset ()
59 AssertEquals ("Getting Internal Subset property",
60 "<!ELEMENT book ANY>", docType
.InternalSubset
);
64 public void AppendChild ()
67 XmlDocumentType type1
= document
.CreateDocumentType ("book", null, null, null);
68 document
.AppendChild (type1
);
70 } catch (InvalidOperationException
) {
74 Fail ("Incorrect Exception thrown.");
79 public void NodeType ()
81 AssertEquals ("NodeType property broken",
82 docType
.NodeType
.ToString (), "DocumentType");
86 public void IsReadOnly ()
88 AssertEquals ("IsReadOnly property", "True", docType
.IsReadOnly
.ToString ());
92 [ExpectedException (typeof (XmlException
))]
93 public void IncorrectInternalSubset ()
95 XmlDocument doc
= new XmlDocument ();
96 XmlDocumentType doctype
= doc
.CreateDocumentType (
97 "root", "public-hogehoge", null,
99 doctype
= doc
.CreateDocumentType ("root",
100 "public-hogehoge", null,
101 "<!ENTITY % pe1 '>'> <!ELEMENT e EMPTY%pe1;");
105 public void CloneNode ()
107 XmlNode original
= docType
;
109 XmlNode cloned1
= docType
.CloneNode (true);
110 XmlNodeBaseProperties (original
, cloned1
);
112 XmlNode cloned2
= docType
.CloneNode (false);
113 XmlNodeBaseProperties (original
, cloned2
);
115 AssertEquals ("Deep and shallow cloning", cloned1
.Value
, cloned2
.Value
);