| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- //
- // XPathScannerTests.cs
- //
- // Author:
- // Jason Diamond ([email protected])
- //
- // (C) 2002 Jason Diamond http://injektilo.org/
- //
- using System;
- using System.Xml.XPath;
- using NUnit.Framework;
- namespace Ximian.Mono.Tests
- {
- public class XPathScannerTests : TestCase
- {
- public XPathScannerTests () : base ("Ximian.Mono.Tests.XPathScannerTests testsuite") { }
- public XPathScannerTests (string name) : base (name) { }
- public void TestLocationPathWithOneNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("foo");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestLocationPathWithTwoNameTests ()
- {
- XPathScanner scanner = new XPathScanner ("foo/bar");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("bar", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestLocationPathWithOneQualifiedNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("foo:bar");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo:bar", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestLocationPathWithTwoQualifiedNameTests ()
- {
- XPathScanner scanner = new XPathScanner ("foo:bar/baz:quux");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo:bar", scanner.Value);
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("baz:quux", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestLocationPathWithOneNameTestWithAxisName ()
- {
- XPathScanner scanner = new XPathScanner ("child::foo");
- AssertEquals (XPathTokenType.AxisName, scanner.Scan ());
- AssertEquals ("child", scanner.Value);
- AssertEquals (XPathTokenType.ColonColon, scanner.Scan ());
- AssertEquals ("::", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestLocationPathWithTwoNameTestsWithAxisNames ()
- {
- XPathScanner scanner = new XPathScanner ("child::foo/preceding-sibling::bar");
- AssertEquals (XPathTokenType.AxisName, scanner.Scan ());
- AssertEquals ("child", scanner.Value);
- AssertEquals (XPathTokenType.ColonColon, scanner.Scan ());
- AssertEquals ("::", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.AxisName, scanner.Scan ());
- AssertEquals ("preceding-sibling", scanner.Value);
- AssertEquals (XPathTokenType.ColonColon, scanner.Scan ());
- AssertEquals ("::", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("bar", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestCommentNodeType ()
- {
- XPathScanner scanner = new XPathScanner ("comment()");
- AssertEquals (XPathTokenType.NodeType, scanner.Scan ());
- AssertEquals ("comment", scanner.Value);
- AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
- AssertEquals ("(", scanner.Value);
- AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
- AssertEquals (")", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestNodeNodeType ()
- {
- XPathScanner scanner = new XPathScanner ("node()");
- AssertEquals (XPathTokenType.NodeType, scanner.Scan ());
- AssertEquals ("node", scanner.Value);
- AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
- AssertEquals ("(", scanner.Value);
- AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
- AssertEquals (")", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestProcessingInstructionNodeType ()
- {
- XPathScanner scanner = new XPathScanner ("processing-instruction()");
- AssertEquals (XPathTokenType.NodeType, scanner.Scan ());
- AssertEquals ("processing-instruction", scanner.Value);
- AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
- AssertEquals ("(", scanner.Value);
- AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
- AssertEquals (")", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestTextNodeType ()
- {
- XPathScanner scanner = new XPathScanner ("text()");
- AssertEquals (XPathTokenType.NodeType, scanner.Scan ());
- AssertEquals ("text", scanner.Value);
- AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
- AssertEquals ("(", scanner.Value);
- AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
- AssertEquals (")", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestFunctionName ()
- {
- XPathScanner scanner = new XPathScanner ("foo()");
- AssertEquals (XPathTokenType.FunctionName, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
- AssertEquals ("(", scanner.Value);
- AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
- AssertEquals (")", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestQualifiedFunctionName ()
- {
- XPathScanner scanner = new XPathScanner ("foo:bar()");
- AssertEquals (XPathTokenType.FunctionName, scanner.Scan ());
- AssertEquals ("foo:bar", scanner.Value);
- AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
- AssertEquals ("(", scanner.Value);
- AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
- AssertEquals (")", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestWildcardNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("*");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("*", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestQualifiedWildcardNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("foo:*");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo:*", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestTwoWildcardNameTests ()
- {
- XPathScanner scanner = new XPathScanner ("*/*");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("*", scanner.Value);
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("*", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestTwoQualifiedWildcardNameTests ()
- {
- XPathScanner scanner = new XPathScanner ("foo:*/bar:*");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo:*", scanner.Value);
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("bar:*", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestAttributeNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("@foo");
- AssertEquals (XPathTokenType.At, scanner.Scan ());
- AssertEquals ("@", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestNameTestAndAttributeNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("foo/@bar");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.At, scanner.Scan ());
- AssertEquals ("@", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("bar", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestAttributeAxis ()
- {
- XPathScanner scanner = new XPathScanner ("attribute::foo");
- AssertEquals (XPathTokenType.AxisName, scanner.Scan ());
- AssertEquals ("attribute", scanner.Value);
- AssertEquals (XPathTokenType.ColonColon, scanner.Scan ());
- AssertEquals ("::", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestNameTestAndAttributeAxis ()
- {
- XPathScanner scanner = new XPathScanner ("foo/attribute::bar");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.AxisName, scanner.Scan ());
- AssertEquals ("attribute", scanner.Value);
- AssertEquals (XPathTokenType.ColonColon, scanner.Scan ());
- AssertEquals ("::", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("bar", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestRoot ()
- {
- XPathScanner scanner = new XPathScanner ("/");
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestAbsoluteNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("/foo");
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("/", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestAbbreviatedAbsoluteLocationPathWithNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("//foo");
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("//", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestAbbreviatedRelativeLocationPathWithNameTest ()
- {
- XPathScanner scanner = new XPathScanner ("foo//bar");
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("foo", scanner.Value);
- AssertEquals (XPathTokenType.Operator, scanner.Scan ());
- AssertEquals ("//", scanner.Value);
- AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
- AssertEquals ("bar", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestAbbreviatedStepSelf ()
- {
- XPathScanner scanner = new XPathScanner (".");
- AssertEquals (XPathTokenType.Dot, scanner.Scan ());
- AssertEquals (".", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- public void TestAbbreviatedStepParent ()
- {
- XPathScanner scanner = new XPathScanner ("..");
- AssertEquals (XPathTokenType.DotDot, scanner.Scan ());
- AssertEquals ("..", scanner.Value);
- AssertEquals (XPathTokenType.End, scanner.Scan ());
- AssertNull (scanner.Value);
- }
- }
- }
|