svn path=/trunk/mcs/; revision=104772
[mono.git] / mcs / class / System.XML / Test / System.Xml.XPath / XPathEditableNavigatorTests.cs
index 63be82202eb90593ec69169151ce56370ff4e329..6b0d0c230ef532aa5a78480f04029e88602eba6c 100644 (file)
@@ -739,6 +739,38 @@ namespace MonoTests.System.Xml.XPath
                        // should first move to owner element and go on.
                        Assert.IsTrue (nav.MoveToFollowing ("foo", String.Empty));
                }
+
+               [Test]
+               public void AppendChildInDocumentFragment ()
+               {
+                       XmlDocumentFragment f = new XmlDocument ().CreateDocumentFragment ();
+                       XmlWriter w = f.CreateNavigator ().AppendChild ();
+                       w.WriteStartElement ("foo");
+                       w.WriteEndElement ();
+                       w.Close ();
+                       Assert.IsNotNull (f.FirstChild as XmlElement);
+               }
+
+               [Test]
+               public void CanEdit ()
+               {
+                       XmlDocument doc = new XmlDocument ();
+                       Assert.IsTrue (doc.CreateNavigator ().CanEdit);
+                       Assert.IsTrue (GetInstance ("<root/>").CanEdit);
+               }
+
+               [Test]
+               public void DeleteSelfAttribute ()
+               {
+                       // bug #376210.
+                       XmlDocument document = new XmlDocument ();
+                       document.LoadXml ("<test><node date='2000-12-23'>z</node></test>");
+                       XPathNavigator navigator = document.CreateNavigator ();
+                       XPathNavigator nodeElement = navigator.SelectSingleNode ("//node");
+                       nodeElement.MoveToAttribute ("date", String.Empty);
+                       nodeElement.DeleteSelf ();
+                       Assert.AreEqual ("<test><node>z</node></test>", document.OuterXml);
+               }
        }
 }