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:
-rw-r--r--mcs/class/System.XML/Mono.System.XML.csproj37
-rw-r--r--mcs/class/System.XML/Test/AllTests.cs1
-rw-r--r--mcs/class/System.XML/Test/ChangeLog6
-rw-r--r--mcs/class/System.XML/Test/MonoMicro.Test.csproj7
-rw-r--r--mcs/class/System.XML/Test/SelectNodesTests.cs209
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]);
+ }
+ }
+}