2 // XmlDocumentEventTests.cs
\r
5 // Atsushi Enomoto <atsushi@ximian.com>
\r
7 // (C)2004 Novell Inc.
\r
9 // This class is a set of event test.
\r
11 using NUnit.Framework;
\r
16 namespace MonoTests.System.Xml
\r
19 public class XmlDocumentEventTests
\r
21 public static void Main ()
\r
23 new XmlDocumentEventTests ().InsertingOrder ();
\r
26 private StringBuilder eventLogBuilder = new StringBuilder ();
\r
28 private XmlDocument GetEventDocument ()
\r
30 XmlDocument document = new XmlDocument ();
\r
31 SetEvents (document);
\r
35 private void SetEvents (XmlDocument document)
\r
37 document.NodeInserting += new XmlNodeChangedEventHandler (OnInsertingLog);
\r
38 document.NodeInserted += new XmlNodeChangedEventHandler (OnInsertedLog);
\r
39 document.NodeChanging += new XmlNodeChangedEventHandler (OnChangingLog);
\r
40 document.NodeChanged += new XmlNodeChangedEventHandler (OnChangedLog);
\r
41 document.NodeRemoving += new XmlNodeChangedEventHandler (OnRemovingLog);
\r
42 document.NodeRemoved += new XmlNodeChangedEventHandler (OnRemovedLog);
\r
45 private void OnInsertingLog (object o, XmlNodeChangedEventArgs e)
\r
47 eventLogBuilder.Append ("Inserting: " + e.Node.NodeType + " into " + e.NewParent.NodeType + ".\n");
\r
50 private void OnInsertedLog (object o, XmlNodeChangedEventArgs e)
\r
52 eventLogBuilder.Append ("Inserted: " + e.Node.NodeType + " into " + e.NewParent.NodeType + ".\n");
\r
55 private void OnChangingLog (object o, XmlNodeChangedEventArgs e)
\r
57 eventLogBuilder.Append ("Changing: " + e.Node.NodeType + " into " + e.NewParent.NodeType + ".\n");
\r
60 private void OnChangedLog (object o, XmlNodeChangedEventArgs e)
\r
62 eventLogBuilder.Append ("Changed: " + e.Node.NodeType + " into " + e.NewParent.NodeType + ".\n");
\r
65 private void OnRemovingLog (object o, XmlNodeChangedEventArgs e)
\r
67 eventLogBuilder.Append ("Removing: " + e.Node.NodeType + " from " + e.OldParent.NodeType + ".\n");
\r
70 private void OnRemovedLog (object o, XmlNodeChangedEventArgs e)
\r
72 eventLogBuilder.Append ("Removed: " + e.Node.NodeType + " from " + e.OldParent.NodeType + ".\n");
\r
76 public void SetUp ()
\r
78 eventLogBuilder.Length = 0;
\r
81 private string EventLog {
\r
82 get { return eventLogBuilder.ToString (); }
\r
86 public void InsertingOrder ()
\r
88 XmlDocument document = GetEventDocument ();
\r
89 XmlElement el = document.CreateElement ("root");
\r
90 el.AppendChild (document.CreateTextNode ("simple text node."));
\r
91 document.AppendChild (el);
\r
92 Assert.AreEqual ("Inserting: Text into Element.\n" +
\r
93 "Inserted: Text into Element.\n" +
\r
94 "Inserting: Element into Document.\n" +
\r
95 "Inserted: Element into Document.\n",
\r
100 public void DefaultAttributeRemoval ()
\r
102 XmlDocument doc = new XmlDocument ();
\r
103 doc.LoadXml ("<!DOCTYPE root [<!ELEMENT root (#PCDATA)><!ATTLIST root foo CDATA 'foo-def'>]><root></root>");
\r
105 doc.DocumentElement.RemoveAll ();
\r
106 Assert.AreEqual ("Removing: Attribute from Element.\n" +
\r
107 "Removed: Attribute from Element.\n" +
\r
108 "Inserting: Text into Attribute.\n" +
\r
109 "Inserted: Text into Attribute.\n" +
\r
110 "Inserting: Attribute into Element.\n" +
\r
111 "Inserted: Attribute into Element.\n",
\r