2009-07-11 Michael Barker <mike@middlesoft.co.uk>
[mono.git] / mcs / class / System.XML / Test / System.Xml / XmlTextTests.cs
1 //
2 // System.Xml.XmlTextWriterTests
3 //
4 // Authors:
5 //   Kral Ferch <kral_ferch@hotmail.com>
6 //   Martin Willemoes Hansen <mwh@sysrq.dk>
7 //
8 // (C) 2002 Kral Ferch
9 // (C) 2003 Martin Willemoes Hansen
10 //
11
12 using System;
13 using System.Xml;
14 using NUnit.Framework;
15
16 namespace MonoTests.System.Xml
17 {
18         [TestFixture]
19         public class XmlTextTests
20         {
21                 XmlDocument document;
22                 XmlText text;
23                 bool inserted;
24                 bool inserting;
25                 bool changed;
26                 bool changing;
27                 bool removed;
28                 bool removing;
29
30                 [SetUp]
31                 public void GetReady ()
32                 {
33                         document = new XmlDocument ();
34                 }
35
36                 private void EventNodeInserted(Object sender, XmlNodeChangedEventArgs e)
37                 {
38                         inserted = true;
39                 }
40
41                 private void EventNodeInserting (Object sender, XmlNodeChangedEventArgs e)
42                 {
43                         inserting = true;
44                 }
45
46                 private void EventNodeChanged(Object sender, XmlNodeChangedEventArgs e)
47                 {
48                         changed = true;
49                 }
50
51                 private void EventNodeChanging (Object sender, XmlNodeChangedEventArgs e)
52                 {
53                         changing = true;
54                 }
55
56                 private void EventNodeRemoved(Object sender, XmlNodeChangedEventArgs e)
57                 {
58                         removed = true;
59                 }
60
61                 private void EventNodeRemoving (Object sender, XmlNodeChangedEventArgs e)
62                 {
63                         removing = true;
64                 }
65
66                 [Test]
67                 public void InnerAndOuterXml ()
68                 {
69                         text = document.CreateTextNode ("&<>\"'");
70                         Assert.AreEqual (String.Empty, text.InnerXml);
71                         Assert.AreEqual ("&amp;&lt;&gt;\"'", text.OuterXml);
72                 }
73                 
74                 [Test]
75                 public void SplitText ()
76                 {
77                         document.LoadXml ("<root>test text.</root>");
78                         document.NodeInserted += new XmlNodeChangedEventHandler(EventNodeInserted);
79                         document.NodeChanged += new XmlNodeChangedEventHandler(EventNodeChanged);
80                         document.NodeRemoved += new XmlNodeChangedEventHandler(EventNodeRemoved);
81                         XmlText t = document.DocumentElement.FirstChild as XmlText;
82                         t.SplitText (5);
83                         Assert.IsNotNull (t.NextSibling);
84                         Assert.AreEqual ("test ", t.Value);
85                         Assert.AreEqual ("text.", t.NextSibling.Value);
86                         Assert.IsTrue (changed);
87                         Assert.IsTrue (inserted);
88                         Assert.IsTrue (!removed);
89                 }
90         }
91 }