2 // System.Xml.XmlDocumentTypeTests.cs
4 // Author: Duncan Mak (duncan@ximian.com)
12 using NUnit.Framework;
14 namespace MonoTests.System.Xml
16 public class XmlDocumentTypeTests : TestCase
19 XmlDocumentType docType;
20 public XmlDocumentTypeTests ()
21 : base ("MonoTests.System.Xml.XmlDocumentTypeTests testsuite")
25 public XmlDocumentTypeTests (string name)
30 protected override void SetUp ()
32 document = new XmlDocument ();
33 docType = document.CreateDocumentType ("book", null, null, "<!ELEMENT book ANY>");
34 document.AppendChild (docType);
37 internal void TestXmlNodeBaseProperties (XmlNode original, XmlNode cloned)
39 // assertequals (original.nodetype + " was incorrectly cloned.",
40 // original.baseuri, cloned.baseuri);
42 AssertNull (cloned.ParentNode);
43 AssertEquals ("Value incorrectly cloned",
44 original.Value, cloned.Value);
46 Assert ("Copies, not pointers", !Object.ReferenceEquals (original, cloned));
49 public void TestName ()
51 AssertEquals ("Getting Name property", "book", docType.Name);
54 public void TestLocalName ()
56 AssertEquals ("Getting LocalName property", "book", docType.LocalName);
59 public void TestInternalSubset ()
61 AssertEquals ("Getting Internal Subset property",
62 "<!ELEMENT book ANY>", docType.InternalSubset);
65 public void TestAppendChild ()
68 XmlDocumentType type1 = document.CreateDocumentType ("book", null, null, null);
69 document.AppendChild (type1);
71 } catch (InvalidOperationException) {
75 Fail ("Incorrect Exception thrown.");
79 public void TestNodeType ()
81 AssertEquals ("NodeType property broken",
82 docType.NodeType.ToString (), "DocumentType");
85 public void TestIsReadOnly ()
87 AssertEquals ("IsReadOnly property", "True", docType.IsReadOnly.ToString ());
90 public void TestCloneNode ()
92 XmlNode original = docType;
94 XmlNode cloned1 = docType.CloneNode (true);
95 TestXmlNodeBaseProperties (original, cloned1);
97 XmlNode cloned2 = docType.CloneNode (false);
98 TestXmlNodeBaseProperties (original, cloned2);
100 AssertEquals ("Deep and shallow cloning", cloned1.Value, cloned2.Value);