diff options
author | Jason Diamond <injektilo@mono-cvs.ximian.com> | 2002-07-12 08:07:15 +0400 |
---|---|---|
committer | Jason Diamond <injektilo@mono-cvs.ximian.com> | 2002-07-12 08:07:15 +0400 |
commit | c8ff8606191173071f45ee62c57655b09c3c3da6 (patch) | |
tree | a1a5a2aaa98c0c9812bb37501532cf37e1cbd78a /mcs/class/System.XML | |
parent | 2f7666c877421a6e32d7a3a37e60aecf64de5a48 (diff) |
Added some tests for the SelectNodes method.
svn path=/trunk/mcs/; revision=5717
Diffstat (limited to 'mcs/class/System.XML')
-rw-r--r-- | mcs/class/System.XML/Mono.System.XML.csproj | 37 | ||||
-rw-r--r-- | mcs/class/System.XML/Test/AllTests.cs | 1 | ||||
-rw-r--r-- | mcs/class/System.XML/Test/ChangeLog | 6 | ||||
-rw-r--r-- | mcs/class/System.XML/Test/MonoMicro.Test.csproj | 7 | ||||
-rw-r--r-- | mcs/class/System.XML/Test/SelectNodesTests.cs | 209 |
5 files changed, 258 insertions, 2 deletions
diff --git a/mcs/class/System.XML/Mono.System.XML.csproj b/mcs/class/System.XML/Mono.System.XML.csproj index 18ecafccdae..0d99f0896b8 100644 --- a/mcs/class/System.XML/Mono.System.XML.csproj +++ b/mcs/class/System.XML/Mono.System.XML.csproj @@ -251,6 +251,11 @@ BuildAction = "Compile"
/>
<File
+ RelPath = "System.Xml\XmlNodeArrayList.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "System.Xml\XmlNodeChangedAction.cs"
SubType = "Code"
BuildAction = "Compile"
@@ -464,7 +469,37 @@ BuildAction = "Compile"
/>
<File
- RelPath = "System.Xml.XPath\XPathScanner.cs"
+ RelPath = "System.Xml.Xsl\IXsltContextFunction.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Xml.Xsl\IXsltContextVariable.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Xml.Xsl\XsltArgumentList.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Xml.Xsl\XsltCompileException.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Xml.Xsl\XsltContext.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Xml.Xsl\XsltException.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Xml.Xsl\XslTransform.cs"
SubType = "Code"
BuildAction = "Compile"
/>
diff --git a/mcs/class/System.XML/Test/AllTests.cs b/mcs/class/System.XML/Test/AllTests.cs index c33d261de57..ebbce563635 100644 --- a/mcs/class/System.XML/Test/AllTests.cs +++ b/mcs/class/System.XML/Test/AllTests.cs @@ -36,6 +36,7 @@ namespace MonoTests.System.Xml suite.AddTest (new TestSuite (typeof (XmlDeclarationTests))); suite.AddTest (new TestSuite (typeof (XmlDocumentTypeTests))); suite.AddTest (new TestSuite (typeof (XPathNavigatorTests))); + suite.AddTest (new TestSuite (typeof (SelectNodesTests))); return suite; } } diff --git a/mcs/class/System.XML/Test/ChangeLog b/mcs/class/System.XML/Test/ChangeLog index bf299f44ced..25ca8065aef 100644 --- a/mcs/class/System.XML/Test/ChangeLog +++ b/mcs/class/System.XML/Test/ChangeLog @@ -1,3 +1,9 @@ +2002-07-11 Jason Diamond <jason@injektilo.org> + + * SelectNodesTests.cs: Added. + + * AllTests.cs: Added SelectNodesTests to suite. + 2002-07-11 Piers Haken <piersh@friskit.com> * XmlElementTests.cs: added TestCreateElement3WithNullNamespace diff --git a/mcs/class/System.XML/Test/MonoMicro.Test.csproj b/mcs/class/System.XML/Test/MonoMicro.Test.csproj index 0c0d4715f18..37467c078d4 100644 --- a/mcs/class/System.XML/Test/MonoMicro.Test.csproj +++ b/mcs/class/System.XML/Test/MonoMicro.Test.csproj @@ -75,7 +75,7 @@ <Reference
Name = "System.XML"
AssemblyName = "System.XML"
- HintPath = "..\obj\Debug\System.XML.dll"
+ HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.XML.dll"
/>
</References>
</Build>
@@ -96,6 +96,11 @@ BuildAction = "Compile"
/>
<File
+ RelPath = "SelectNodesTests.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "XmlAttributeTests.cs"
SubType = "Code"
BuildAction = "Compile"
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]); + } + } +} |