2 // System.Xml.XmlDocumentFragment.cs
4 // Author: Atsushi Enomoto (ginga@kit.hi-ho.ne.jp)
5 // Author: Martin Willemoes Hansen (mwh@sysrq.dk)
7 // (C) 2002 Atsushi Enomoto
8 // (C) 2003 Martin Willemoes Hansen
14 using NUnit
.Framework
;
16 namespace MonoTests
.System
.Xml
19 public class XmlDocumentFragmentTests
22 XmlDocumentFragment fragment
;
25 public void Constructor ()
27 XmlDocument d
= new XmlDocument ();
28 XmlDocumentFragment df
= d
.CreateDocumentFragment ();
29 Assert
.AreEqual ("#document-fragment", df
.Name
, "#Constructor.NodeName");
30 Assert
.AreEqual (XmlNodeType
.DocumentFragment
, df
.NodeType
, "#Constructor.NodeType");
34 public void AppendChildToFragment ()
36 document
= new XmlDocument ();
37 fragment
= document
.CreateDocumentFragment ();
38 document
.LoadXml ("<html><head></head><body></body></html>");
39 XmlElement el
= document
.CreateElement ("p");
40 el
.InnerXml
= "Test Paragraph";
42 // appending element to fragment
43 fragment
.AppendChild (el
);
44 Assert
.IsNotNull (fragment
.FirstChild
, "#AppendChildToFragment.Element");
45 Assert
.IsNotNull (fragment
.FirstChild
.FirstChild
, "#AppendChildToFragment.Element.Children");
46 Assert
.AreEqual ("Test Paragraph", fragment
.FirstChild
.FirstChild
.Value
, "#AppendChildToFragment.Element.Child.Text");
50 public void AppendFragmentToElement ()
52 document
= new XmlDocument ();
53 fragment
= document
.CreateDocumentFragment ();
54 document
.LoadXml ("<html><head></head><body></body></html>");
55 XmlElement body
= document
.DocumentElement
.LastChild
as XmlElement
;
56 fragment
.AppendChild (document
.CreateElement ("p"));
57 fragment
.AppendChild (document
.CreateElement ("div"));
59 // appending fragment to element
60 XmlNode ret
= body
.AppendChild (fragment
);
61 Assert
.IsNotNull (body
.FirstChild
, "#AppendFragmentToElement.Exist");
62 Assert
.AreEqual (XmlNodeType
.Element
, body
.FirstChild
.NodeType
, "#AppendFragmentToElement.ChildIsElement");
63 Assert
.AreEqual ("p", body
.FirstChild
.Name
, "#AppendFragmentToElement.FirstChild");
64 Assert
.AreEqual ("div", body
.LastChild
.Name
, "#AppendFragmentToElement.LastChild");
65 Assert
.AreEqual ("p", ret
.LocalName
, "#AppendFragmentToElement.ReturnValue");
69 public void GetInnerXml ()
71 // this will be also tests of TestWriteTo()/TestWriteContentTo()
73 document
= new XmlDocument ();
74 fragment
= document
.CreateDocumentFragment ();
75 fragment
.AppendChild (document
.CreateElement ("foo"));
76 fragment
.AppendChild (document
.CreateElement ("bar"));
77 fragment
.AppendChild (document
.CreateElement ("baz"));
78 Assert
.AreEqual ("<foo /><bar /><baz />", fragment
.InnerXml
, "#Simple");
82 public void SetInnerXml ()
84 document
= new XmlDocument ();
85 fragment
= document
.CreateDocumentFragment ();
86 fragment
.InnerXml
= "<foo /><bar><child /></bar><baz />";
87 Assert
.AreEqual ("foo", fragment
.FirstChild
.Name
);
88 Assert
.AreEqual ("bar", fragment
.FirstChild
.NextSibling
.Name
);
89 Assert
.AreEqual ("child", fragment
.FirstChild
.NextSibling
.FirstChild
.Name
);
90 Assert
.AreEqual ("baz", fragment
.LastChild
.Name
);
94 public void InnerText ()
96 document
= new XmlDocument ();
97 fragment
= document
.CreateDocumentFragment ();
98 string text
= "<foo /><bar><child /></bar><baz />";
99 fragment
.InnerText
= text
;
100 Assert
.AreEqual (text
, fragment
.InnerText
);