(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / System.XML / Test / System.Xml.XPath / XPathNavigatorMatchesTests.cs
blob611e92d52abfd8341362f9593a9ddb92b7f1bf81
1 //
2 // MonoTests.System.Xml.XPathNavigatorMatchesTests
3 //
4 // Authors:
5 // Jason Diamond <jason@injektilo.org>
6 // Martin Willemoes Hansen <mwh@sysrq.dk>
7 //
8 // (C) 2002 Jason Diamond
9 // (C) 2003 Martin Willemoes Hansen
12 using System;
13 using System.Xml;
14 using System.Xml.XPath;
16 using NUnit.Framework;
18 namespace MonoTests.System.Xml
20 [TestFixture]
21 public class XPathNavigatorMatchesTests : Assertion
23 private XPathNavigator CreateNavigator (string xml)
25 XmlDocument document = new XmlDocument ();
26 document.LoadXml (xml);
27 return document.CreateNavigator ();
30 [Test]
31 public void MatchRoot ()
33 XPathNavigator navigator = CreateNavigator ("<foo />");
34 Assert (navigator.Matches ("/"));
37 [Test]
38 public void FalseMatchRoot ()
40 XPathNavigator navigator = CreateNavigator ("<foo />");
41 Assert (!navigator.Matches ("foo"));
44 [Test]
45 public void MatchDocumentElement ()
47 XmlDocument document = new XmlDocument ();
48 document.LoadXml ("<foo />");
49 XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
51 Assert (navigator.Matches ("foo"));
54 [Test]
55 public void MatchAbsoluteDocumentElement ()
57 XmlDocument document = new XmlDocument ();
58 document.LoadXml ("<foo />");
59 XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
61 Assert (navigator.Matches ("/foo"));
64 [Test]
65 public void MatchDocumentElementChild ()
67 XmlDocument document = new XmlDocument ();
68 document.LoadXml ("<foo><bar /></foo>");
69 XPathNavigator navigator = document.DocumentElement.FirstChild.CreateNavigator ();
71 Assert (navigator.Matches ("bar"));
72 Assert (navigator.Matches ("foo/bar"));
75 [Test]
76 public void MatchAttribute ()
78 XmlDocument document = new XmlDocument ();
79 document.LoadXml ("<foo bar='baz' />");
80 XPathNavigator navigator = document.DocumentElement.Attributes[0].CreateNavigator ();
82 Assert (navigator.Matches ("@bar"));
83 Assert (navigator.Matches ("foo/@bar"));
86 [Test]
87 public void SlashSlash ()
89 XmlDocument document = new XmlDocument ();
90 document.LoadXml ("<foo><bar><baz/></bar></foo>");
91 XPathNavigator navigator = document.DocumentElement.FirstChild.FirstChild.CreateNavigator ();
93 Assert (navigator.Matches ("foo//baz"));
96 [Test]
97 public void AbsoluteSlashSlash ()
99 XmlDocument document = new XmlDocument ();
100 document.LoadXml ("<foo><bar><baz/></bar></foo>");
101 XPathNavigator navigator = document.DocumentElement.FirstChild.FirstChild.CreateNavigator ();
103 Assert (navigator.Matches ("//baz"));
106 [Test]
107 public void MatchDocumentElementWithPredicate ()
109 XmlDocument document = new XmlDocument ();
110 document.LoadXml ("<foo><bar /></foo>");
111 XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
113 Assert (navigator.Matches ("foo[bar]"));
116 [Test]
117 public void FalseMatchDocumentElementWithPredicate ()
119 XmlDocument document = new XmlDocument ();
120 document.LoadXml ("<foo><bar /></foo>");
121 XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
123 Assert (!navigator.Matches ("foo[baz]"));
126 [Test]
127 public void MatchesAncestorsButNotCurrent ()
129 XPathNavigator nav = CreateNavigator ("<foo><bar><baz/></bar></foo>");
130 nav.MoveToFirstChild (); // foo
131 nav.MoveToFirstChild (); // bar
132 nav.MoveToFirstChild (); // baz
133 Assert (nav.Matches ("baz"));
134 Assert (nav.Matches ("bar/baz"));
135 Assert (!nav.Matches ("foo/bar"));
138 [Test]
139 [ExpectedException (typeof (XPathException))]
140 public void MatchesParentAxis ()
142 XPathNavigator nav = CreateNavigator ("<foo/>");
143 nav.Matches ("..");
146 [Test]
147 [ExpectedException (typeof (XPathException))]
148 public void MatchesPredicatedParentAxis ()
150 XPathNavigator nav = CreateNavigator ("<foo/>");
151 nav.Matches ("..[1]");