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
: Assertion
22 XmlDocumentFragment fragment
;
25 public void Constructor ()
27 XmlDocument d
= new XmlDocument ();
28 XmlDocumentFragment df
= d
.CreateDocumentFragment ();
29 AssertEquals ("#Constructor.NodeName", "#document-fragment", df
.Name
);
30 AssertEquals ("#Constructor.NodeType", XmlNodeType
.DocumentFragment
, df
.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 AssertNotNull ("#AppendChildToFragment.Element", fragment
.FirstChild
);
45 AssertNotNull ("#AppendChildToFragment.Element.Children", fragment
.FirstChild
.FirstChild
);
46 AssertEquals ("#AppendChildToFragment.Element.Child.Text", "Test Paragraph", fragment
.FirstChild
.FirstChild
.Value
);
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 body
.AppendChild (fragment
);
61 AssertNotNull ("#AppendFragmentToElement.Exist", body
.FirstChild
);
62 AssertEquals ("#AppendFragmentToElement.ChildIsElement", XmlNodeType
.Element
, body
.FirstChild
.NodeType
);
63 AssertEquals ("#AppendFragmentToElement.FirstChild", "p", body
.FirstChild
.Name
);
64 AssertEquals ("#AppendFragmentToElement.LastChild", "div", body
.LastChild
.Name
);
68 public void GetInnerXml ()
70 // this will be also tests of TestWriteTo()/TestWriteContentTo()
72 document
= new XmlDocument ();
73 fragment
= document
.CreateDocumentFragment ();
74 fragment
.AppendChild (document
.CreateElement ("foo"));
75 fragment
.AppendChild (document
.CreateElement ("bar"));
76 fragment
.AppendChild (document
.CreateElement ("baz"));
77 AssertEquals ("#Simple", "<foo /><bar /><baz />", fragment
.InnerXml
);
81 public void SetInnerXml ()
83 document
= new XmlDocument ();
84 fragment
= document
.CreateDocumentFragment ();
85 fragment
.InnerXml
= "<foo /><bar><child /></bar><baz />";
86 AssertEquals ("foo", fragment
.FirstChild
.Name
);
87 AssertEquals ("bar", fragment
.FirstChild
.NextSibling
.Name
);
88 AssertEquals ("child", fragment
.FirstChild
.NextSibling
.FirstChild
.Name
);
89 AssertEquals ("baz", fragment
.LastChild
.Name
);