diff options
author | Jason Diamond <injektilo@mono-cvs.ximian.com> | 2002-05-27 23:18:16 +0400 |
---|---|---|
committer | Jason Diamond <injektilo@mono-cvs.ximian.com> | 2002-05-27 23:18:16 +0400 |
commit | a71db778e84c5abc48b36ddeb2f93358fda363b6 (patch) | |
tree | 3c63c093ede3b3691885163f825ba5e71bbdfd6a /mcs/class/System.XML/Test/XPathNavigatorTests.cs | |
parent | 4d82c52aebf33ced1d8b934323eccbb905419a9e (diff) |
When will I ever remember to add my new files before committing?
svn path=/trunk/mcs/; revision=4972
Diffstat (limited to 'mcs/class/System.XML/Test/XPathNavigatorTests.cs')
-rw-r--r-- | mcs/class/System.XML/Test/XPathNavigatorTests.cs | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/mcs/class/System.XML/Test/XPathNavigatorTests.cs b/mcs/class/System.XML/Test/XPathNavigatorTests.cs new file mode 100644 index 00000000000..3e1c5eac1f1 --- /dev/null +++ b/mcs/class/System.XML/Test/XPathNavigatorTests.cs @@ -0,0 +1,172 @@ +// +// MonoTests.System.Xml.XPathNavigatorTests +// +// Author: +// Jason Diamond <jason@injektilo.org> +// +// (C) 2002 Jason Diamond +// +
+using System; +using System.Xml; +using System.Xml.XPath; + +using NUnit.Framework; + +namespace MonoTests.System.Xml +{ + public class XPathNavigatorTests : TestCase + { + public XPathNavigatorTests () : base ("MonoTests.System.Xml.XPathNavigatorTests testsuite") {} + public XPathNavigatorTests (string name) : base (name) {} + + public void TestCreateNavigator () + { + XmlDocument document = new XmlDocument (); + document.LoadXml ("<foo />"); + XPathNavigator navigator = document.CreateNavigator (); + AssertNotNull (navigator); + } + + public void TestPropertiesOnDocument () + { + XmlDocument document = new XmlDocument (); + document.LoadXml ("<foo:bar xmlns:foo='#foo' />"); + XPathNavigator navigator = document.CreateNavigator (); + + AssertEquals (XPathNodeType.Root, navigator.NodeType); + AssertEquals (String.Empty, navigator.Name); + AssertEquals (String.Empty, navigator.LocalName); + AssertEquals (String.Empty, navigator.NamespaceURI); + AssertEquals (String.Empty, navigator.Prefix); + Assert (!navigator.HasAttributes); + Assert (navigator.HasChildren); + Assert (!navigator.IsEmptyElement); + } + + public void TestPropertiesOnElement () + { + XmlDocument document = new XmlDocument (); + document.LoadXml ("<foo:bar xmlns:foo='#foo' />"); + XPathNavigator navigator = document.DocumentElement.CreateNavigator (); + + AssertEquals (XPathNodeType.Element, navigator.NodeType); + AssertEquals ("foo:bar", navigator.Name); + AssertEquals ("bar", navigator.LocalName); + AssertEquals ("#foo", navigator.NamespaceURI); + AssertEquals ("foo", navigator.Prefix); + Assert (!navigator.HasAttributes); + Assert (!navigator.HasChildren); + Assert (navigator.IsEmptyElement); + } + + public void TestPropertiesOnAttribute () + { + XmlDocument document = new XmlDocument (); + document.LoadXml ("<foo bar:baz='quux' xmlns:bar='#bar' />"); + XPathNavigator navigator = document.DocumentElement.GetAttributeNode("baz", "#bar").CreateNavigator (); + + AssertEquals (XPathNodeType.Attribute, navigator.NodeType); + AssertEquals ("bar:baz", navigator.Name); + AssertEquals ("baz", navigator.LocalName); + AssertEquals ("#bar", navigator.NamespaceURI); + AssertEquals ("bar", navigator.Prefix); + Assert (!navigator.HasAttributes); + Assert (!navigator.HasChildren); + Assert (!navigator.IsEmptyElement); + } + + public void TestNavigation () + { + XmlDocument document = new XmlDocument (); + document.LoadXml ("<foo><bar /><baz /></foo>"); + XPathNavigator navigator = document.DocumentElement.CreateNavigator (); + + AssertEquals ("foo", navigator.Name); + Assert (navigator.MoveToFirstChild ()); + AssertEquals ("bar", navigator.Name); + Assert (navigator.MoveToNext ()); + AssertEquals ("baz", navigator.Name); + Assert (!navigator.MoveToNext ()); + AssertEquals ("baz", navigator.Name); + Assert (navigator.MoveToPrevious ()); + AssertEquals ("bar", navigator.Name); + Assert (!navigator.MoveToPrevious ()); + Assert (navigator.MoveToParent ()); + AssertEquals ("foo", navigator.Name); + navigator.MoveToRoot (); + AssertEquals (XPathNodeType.Root, navigator.NodeType); + Assert (!navigator.MoveToParent ()); + AssertEquals (XPathNodeType.Root, navigator.NodeType); + Assert (navigator.MoveToFirstChild ()); + AssertEquals ("foo", navigator.Name); + Assert (navigator.MoveToFirst ()); + AssertEquals ("foo", navigator.Name); + Assert (navigator.MoveToFirstChild ()); + AssertEquals ("bar", navigator.Name); + Assert (navigator.MoveToNext ()); + AssertEquals ("baz", navigator.Name); + Assert (navigator.MoveToFirst ()); + AssertEquals ("bar", navigator.Name); + } + + public void TestMoveToAndIsSamePosition () + { + XmlDocument document1 = new XmlDocument (); + document1.LoadXml ("<foo><bar /></foo>"); + XPathNavigator navigator1a = document1.DocumentElement.CreateNavigator (); + XPathNavigator navigator1b = document1.DocumentElement.CreateNavigator (); + + XmlDocument document2 = new XmlDocument (); + document2.LoadXml ("<foo><bar /></foo>"); + XPathNavigator navigator2 = document2.DocumentElement.CreateNavigator (); + + AssertEquals ("foo", navigator1a.Name); + Assert (navigator1a.MoveToFirstChild ()); + AssertEquals ("bar", navigator1a.Name); + + Assert (!navigator1b.IsSamePosition (navigator1a)); + AssertEquals ("foo", navigator1b.Name); + Assert (navigator1b.MoveTo (navigator1a)); + Assert (navigator1b.IsSamePosition (navigator1a)); + AssertEquals ("bar", navigator1b.Name); + + Assert (!navigator2.IsSamePosition (navigator1a)); + AssertEquals ("foo", navigator2.Name); + Assert (!navigator2.MoveTo (navigator1a)); + AssertEquals ("foo", navigator2.Name); + } + + public void TestAttributeNavigation () + { + XmlDocument document = new XmlDocument (); + document.LoadXml ("<foo bar='baz' quux='quuux' />"); + XPathNavigator navigator = document.DocumentElement.CreateNavigator (); + + AssertEquals (XPathNodeType.Element, navigator.NodeType); + AssertEquals ("foo", navigator.Name); + Assert (navigator.MoveToFirstAttribute ()); + AssertEquals (XPathNodeType.Attribute, navigator.NodeType); + AssertEquals ("bar", navigator.Name); + AssertEquals ("baz", navigator.Value); + Assert (navigator.MoveToNextAttribute ()); + AssertEquals (XPathNodeType.Attribute, navigator.NodeType); + AssertEquals ("quux", navigator.Name); + AssertEquals ("quuux", navigator.Value); + } + + public void TestElementAndRootValues() + { + XmlDocument document = new XmlDocument (); + document.LoadXml ("<foo><bar>baz</bar><quux>quuux</quux></foo>"); + XPathNavigator navigator = document.DocumentElement.CreateNavigator (); + + AssertEquals (XPathNodeType.Element, navigator.NodeType); + AssertEquals ("foo", navigator.Name); + //AssertEquals ("bazquuux", navigator.Value); + + navigator.MoveToRoot (); + //AssertEquals ("bazquuux", navigator.Value); + } + } +} |