Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Diamond <injektilo@mono-cvs.ximian.com>2002-07-12 08:07:15 +0400
committerJason Diamond <injektilo@mono-cvs.ximian.com>2002-07-12 08:07:15 +0400
commitc8ff8606191173071f45ee62c57655b09c3c3da6 (patch)
treea1a5a2aaa98c0c9812bb37501532cf37e1cbd78a /mcs/class/System.XML/Test/SelectNodesTests.cs
parent2f7666c877421a6e32d7a3a37e60aecf64de5a48 (diff)
Added some tests for the SelectNodes method.
svn path=/trunk/mcs/; revision=5717
Diffstat (limited to 'mcs/class/System.XML/Test/SelectNodesTests.cs')
-rw-r--r--mcs/class/System.XML/Test/SelectNodesTests.cs209
1 files changed, 209 insertions, 0 deletions
diff --git a/mcs/class/System.XML/Test/SelectNodesTests.cs b/mcs/class/System.XML/Test/SelectNodesTests.cs
new file mode 100644
index 00000000000..2f168219c7b
--- /dev/null
+++ b/mcs/class/System.XML/Test/SelectNodesTests.cs
@@ -0,0 +1,209 @@
+//
+// MonoTests.System.Xml.SelectNodesTests
+//
+// Author:
+// Jason Diamond <jason@injektilo.org>
+//
+// (C) 2002 Jason Diamond
+//
+
+using System;
+using System.Xml;
+
+using NUnit.Framework;
+
+namespace MonoTests.System.Xml
+{
+ public class SelectNodesTests : TestCase
+ {
+ public SelectNodesTests () : base ("MonoTests.System.Xml.SelectNodesTests testsuite") {}
+ public SelectNodesTests (string name) : base (name) {}
+
+ public void TestRoot ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo />");
+ XmlNodeList nodes = document.SelectNodes ("/");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document, nodes [0]);
+ }
+
+ public void TestDocumentElement ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo />");
+ XmlNodeList nodes = document.SelectNodes ("/foo");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement, nodes [0]);
+ }
+
+ public void TestBadDocumentElement ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo />");
+ XmlNodeList nodes = document.SelectNodes ("/bar");
+ AssertEquals (0, nodes.Count);
+ }
+
+ public void TestElementWildcard ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /><baz /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/*");
+ AssertEquals (2, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [0], nodes [0]);
+ AssertSame (document.DocumentElement.ChildNodes [1], nodes [1]);
+ }
+
+ public void TestOneChildElement ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /><baz /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/bar");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [0], nodes [0]);
+ }
+
+ public void TestOneOtherChildElement ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /><baz /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/baz");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [1], nodes [0]);
+ }
+
+ public void TestTextNode ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo>bar</foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/text()");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [0], nodes [0]);
+ }
+
+ public void TestSplitTextNodes ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo>bar<baz />quux</foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/text()");
+ AssertEquals (2, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [0], nodes [0]);
+ AssertSame (document.DocumentElement.ChildNodes [2], nodes [1]);
+ }
+
+ public void TestAbbreviatedParentAxis ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/bar/..");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement, nodes [0]);
+ }
+
+ public void TestFullParentAxis ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/bar/parent::node()");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement, nodes [0]);
+ }
+
+ public void TestAbbreviatedAttributeAxis ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo bar='baz' />");
+ XmlNodeList nodes = document.SelectNodes ("/foo/@bar");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement.Attributes ["bar"], nodes [0]);
+ }
+
+ public void TestFullAttributeAxis ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo bar='baz' />");
+ XmlNodeList nodes = document.SelectNodes ("/foo/attribute::bar");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement.Attributes ["bar"], nodes [0]);
+ }
+
+ public void TestAbbreviatedAttributeWildcard ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo bar='baz' quux='quuux' />");
+ XmlNodeList nodes = document.SelectNodes ("/foo/@*");
+ AssertEquals (2, nodes.Count);
+ // are the attributes guanteed to be ordered in the node list?
+ AssertSame (document.DocumentElement.Attributes ["bar"], nodes [0]);
+ AssertSame (document.DocumentElement.Attributes ["quux"], nodes [1]);
+ }
+
+ public void TestAttributeParent ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo bar='baz' />");
+ XmlNodeList nodes = document.SelectNodes ("/foo/@bar/..");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement, nodes [0]);
+ }
+
+ public void TestUnionOperator ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /><baz /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/bar|/foo/baz");
+ AssertEquals (2, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [0], nodes [0]);
+ AssertSame (document.DocumentElement.ChildNodes [1], nodes [1]);
+ }
+
+ public void TestNodeWildcard ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar />baz<quux /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/node()");
+ AssertEquals (3, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [0], nodes [0]);
+ AssertSame (document.DocumentElement.ChildNodes [1], nodes [1]);
+ AssertSame (document.DocumentElement.ChildNodes [2], nodes [2]);
+ }
+
+ public void TestPositionalPredicate ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar>1</bar><bar>2</bar></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/bar[1]");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [0], nodes [0]);
+ }
+
+ public void TestAllFollowingSiblings ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /><baz /><quux /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/bar/following-sibling::*");
+ AssertEquals (2, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [1], nodes [0]);
+ AssertSame (document.DocumentElement.ChildNodes [2], nodes [1]);
+ }
+
+ public void TestFollowingSiblingBaz ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /><baz /><quux /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/bar/following-sibling::baz");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [1], nodes [0]);
+ }
+
+ public void TestFollowingSiblingQuux ()
+ {
+ XmlDocument document = new XmlDocument ();
+ document.LoadXml ("<foo><bar /><baz /><quux /></foo>");
+ XmlNodeList nodes = document.SelectNodes ("/foo/bar/following-sibling::quux");
+ AssertEquals (1, nodes.Count);
+ AssertSame (document.DocumentElement.ChildNodes [2], nodes [0]);
+ }
+ }
+}