New test.
[mono.git] / mcs / class / System.XML / Test / System.Xml / standalone_tests / eventdump.cs
1 using System;
2 using System.IO;
3 using System.Xml;
4
5 public class DomEventDumper
6 {
7         public static void Main ()
8         {
9                 new DomEventDumper ().TestOASIS ();
10         }
11
12         public void TestOASIS ()
13         {
14                 XmlDocument doc = new XmlDocument ();
15                 doc.NodeInserting += new XmlNodeChangedEventHandler (OnInserting);
16                 doc.NodeInserted += new XmlNodeChangedEventHandler (OnInserted);
17                 doc.NodeChanging += new XmlNodeChangedEventHandler (OnChanging);
18                 doc.NodeChanged += new XmlNodeChangedEventHandler (OnChanged);
19                 doc.NodeRemoving += new XmlNodeChangedEventHandler (OnRemoving);
20                 doc.NodeRemoved += new XmlNodeChangedEventHandler (OnRemoved);
21
22                 foreach (FileInfo fi in
23                         new DirectoryInfo (@"xml-test-suite/xmlconf/oasis").GetFiles ("*.xml")) {
24                         try {
25                                 if (fi.Name.IndexOf ("fail") >= 0)
26                                         continue;
27
28                                 Console.WriteLine ("#### File: " + fi.Name);
29
30                                 XmlTextReader xtr = new XmlTextReader (fi.FullName);
31                                 xtr.Namespaces = false;
32                                 xtr.Normalization = true;
33                                 doc.RemoveAll ();
34                                 doc.Load (xtr);
35
36                         } catch (XmlException ex) {
37                                 if (fi.Name.IndexOf ("pass") >= 0)
38                                         Console.WriteLine ("Incorrectly invalid: " + fi.FullName + "\n" + ex.Message);
39                         }
40                 }
41         }
42
43         public void OnInserting (object o, XmlNodeChangedEventArgs e)
44         {
45                 Console.WriteLine ("Inserting::: " + e.Node.NodeType + " into " + e.NewParent.NodeType + " Name: " + e.Node.Name + ", Value: " + e.Node.Value);
46         }
47
48         public void OnInserted (object o, XmlNodeChangedEventArgs e)
49         {
50                 Console.WriteLine ("Inserted::: " + e.Node.NodeType + " into " + e.NewParent.NodeType + " Name: " + e.Node.Name + ", Value: " + e.Node.Value);
51         }
52
53         public void OnChanging (object o, XmlNodeChangedEventArgs e)
54         {
55                 Console.WriteLine ("Changing::: " + e.Node.NodeType);
56         }
57
58         public void OnChanged (object o, XmlNodeChangedEventArgs e)
59         {
60                 Console.WriteLine ("Changed::: " + e.Node.NodeType);
61         }
62
63         public void OnRemoving (object o, XmlNodeChangedEventArgs e)
64         {
65                 Console.WriteLine ("Removing::: " + e.Node.NodeType);
66         }
67
68         public void OnRemoved (object o, XmlNodeChangedEventArgs e)
69         {
70                 Console.WriteLine ("Removed::: " + e.Node.NodeType);
71         }
72 }