2 // XPathScannerTests.cs
\r
5 // Jason Diamond (jason@injektilo.org)
\r
7 // (C) 2002 Jason Diamond http://injektilo.org/
\r
11 using System.Xml.XPath;
\r
13 using NUnit.Framework;
\r
15 namespace Ximian.Mono.Tests
\r
17 public class XPathScannerTests : TestCase
\r
19 public XPathScannerTests () : base ("Ximian.Mono.Tests.XPathScannerTests testsuite") { }
\r
20 public XPathScannerTests (string name) : base (name) { }
\r
22 public void TestLocationPathWithOneNameTest()
\r
24 XPathScanner scanner = new XPathScanner ("foo");
\r
25 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
26 AssertEquals ("foo", scanner.Value);
\r
27 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
28 AssertNull (scanner.Value);
\r
31 public void TestLocationPathWithTwoNameTests()
\r
33 XPathScanner scanner = new XPathScanner ("foo/bar");
\r
34 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
35 AssertEquals ("foo", scanner.Value);
\r
36 AssertEquals (XPathTokenType.Operator, scanner.Scan ());
\r
37 AssertEquals ("/", scanner.Value);
\r
38 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
39 AssertEquals ("bar", scanner.Value);
\r
40 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
41 AssertNull (scanner.Value);
\r
44 public void TestLocationPathWithOneQualifiedNameTest()
\r
46 XPathScanner scanner = new XPathScanner ("foo:bar");
\r
47 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
48 AssertEquals ("foo:bar", scanner.Value);
\r
49 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
50 AssertNull (scanner.Value);
\r
53 public void TestLocationPathWithTwoQualifiedNameTests()
\r
55 XPathScanner scanner = new XPathScanner ("foo:bar/baz:quux");
\r
56 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
57 AssertEquals ("foo:bar", scanner.Value);
\r
58 AssertEquals (XPathTokenType.Operator, scanner.Scan ());
\r
59 AssertEquals ("/", scanner.Value);
\r
60 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
61 AssertEquals ("baz:quux", scanner.Value);
\r
62 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
63 AssertNull (scanner.Value);
\r
66 public void TestLocationPathWithOneNameTestWithAxisName()
\r
68 XPathScanner scanner = new XPathScanner ("child::foo");
\r
69 AssertEquals (XPathTokenType.AxisName, scanner.Scan ());
\r
70 AssertEquals ("child", scanner.Value);
\r
71 AssertEquals (XPathTokenType.ColonColon, scanner.Scan ());
\r
72 AssertEquals ("::", scanner.Value);
\r
73 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
74 AssertEquals ("foo", scanner.Value);
\r
75 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
76 AssertNull (scanner.Value);
\r
79 public void TestLocationPathWithTwoNameTestsWithAxisNames()
\r
81 XPathScanner scanner = new XPathScanner ("child::foo/preceding-sibling::bar");
\r
82 AssertEquals (XPathTokenType.AxisName, scanner.Scan ());
\r
83 AssertEquals ("child", scanner.Value);
\r
84 AssertEquals (XPathTokenType.ColonColon, scanner.Scan ());
\r
85 AssertEquals ("::", scanner.Value);
\r
86 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
87 AssertEquals ("foo", scanner.Value);
\r
88 AssertEquals (XPathTokenType.Operator, scanner.Scan ());
\r
89 AssertEquals ("/", scanner.Value);
\r
90 AssertEquals (XPathTokenType.AxisName, scanner.Scan ());
\r
91 AssertEquals ("preceding-sibling", scanner.Value);
\r
92 AssertEquals (XPathTokenType.ColonColon, scanner.Scan ());
\r
93 AssertEquals ("::", scanner.Value);
\r
94 AssertEquals (XPathTokenType.NameTest, scanner.Scan ());
\r
95 AssertEquals ("bar", scanner.Value);
\r
96 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
97 AssertNull (scanner.Value);
\r
100 public void TestCommentNodeType()
\r
102 XPathScanner scanner = new XPathScanner ("comment()");
\r
103 AssertEquals (XPathTokenType.NodeType, scanner.Scan ());
\r
104 AssertEquals ("comment", scanner.Value);
\r
105 AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
\r
106 AssertEquals ("(", scanner.Value);
\r
107 AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
\r
108 AssertEquals (")", scanner.Value);
\r
109 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
110 AssertNull (scanner.Value);
\r
113 public void TestNodeNodeType()
\r
115 XPathScanner scanner = new XPathScanner ("node()");
\r
116 AssertEquals (XPathTokenType.NodeType, scanner.Scan ());
\r
117 AssertEquals ("node", scanner.Value);
\r
118 AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
\r
119 AssertEquals ("(", scanner.Value);
\r
120 AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
\r
121 AssertEquals (")", scanner.Value);
\r
122 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
123 AssertNull (scanner.Value);
\r
126 public void TestProcessingInstructionNodeType()
\r
128 XPathScanner scanner = new XPathScanner ("processing-instruction()");
\r
129 AssertEquals (XPathTokenType.NodeType, scanner.Scan ());
\r
130 AssertEquals ("processing-instruction", scanner.Value);
\r
131 AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
\r
132 AssertEquals ("(", scanner.Value);
\r
133 AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
\r
134 AssertEquals (")", scanner.Value);
\r
135 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
136 AssertNull (scanner.Value);
\r
139 public void TestTextNodeType()
\r
141 XPathScanner scanner = new XPathScanner ("text()");
\r
142 AssertEquals (XPathTokenType.NodeType, scanner.Scan ());
\r
143 AssertEquals ("text", scanner.Value);
\r
144 AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
\r
145 AssertEquals ("(", scanner.Value);
\r
146 AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
\r
147 AssertEquals (")", scanner.Value);
\r
148 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
149 AssertNull (scanner.Value);
\r
152 public void TestFunctionName()
\r
154 XPathScanner scanner = new XPathScanner ("foo()");
\r
155 AssertEquals (XPathTokenType.FunctionName, scanner.Scan ());
\r
156 AssertEquals ("foo", scanner.Value);
\r
157 AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
\r
158 AssertEquals ("(", scanner.Value);
\r
159 AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
\r
160 AssertEquals (")", scanner.Value);
\r
161 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
162 AssertNull (scanner.Value);
\r
165 public void TestQualifiedFunctionName()
\r
167 XPathScanner scanner = new XPathScanner ("foo:bar()");
\r
168 AssertEquals (XPathTokenType.FunctionName, scanner.Scan ());
\r
169 AssertEquals ("foo:bar", scanner.Value);
\r
170 AssertEquals (XPathTokenType.LeftParen, scanner.Scan ());
\r
171 AssertEquals ("(", scanner.Value);
\r
172 AssertEquals (XPathTokenType.RightParen, scanner.Scan ());
\r
173 AssertEquals (")", scanner.Value);
\r
174 AssertEquals (XPathTokenType.End, scanner.Scan ());
\r
175 AssertNull (scanner.Value);
\r