2 // MonoTests.System.Xml.XPathNavigatorMatchesTests
5 // Jason Diamond <jason@injektilo.org>
7 // (C) 2002 Jason Diamond
12 using System.Xml.XPath;
14 using NUnit.Framework;
16 namespace MonoTests.System.Xml
18 public class XPathNavigatorMatchesTests : TestCase
20 public XPathNavigatorMatchesTests () : base ("MonoTests.System.Xml.XPathNavigatorMatchesTests testsuite") {}
21 public XPathNavigatorMatchesTests (string name) : base (name) {}
23 public void TestMatchRoot ()
25 XmlDocument document = new XmlDocument ();
26 document.LoadXml ("<foo />");
27 XPathNavigator navigator = document.CreateNavigator ();
29 Assert (navigator.Matches ("/"));
32 public void TestFalseMatchRoot ()
34 XmlDocument document = new XmlDocument ();
35 document.LoadXml ("<foo />");
36 XPathNavigator navigator = document.CreateNavigator ();
38 Assert (!navigator.Matches ("foo"));
41 public void TestMatchDocumentElement ()
43 XmlDocument document = new XmlDocument ();
44 document.LoadXml ("<foo />");
45 XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
47 Assert (navigator.Matches ("foo"));
50 public void TestMatchAbsoluteDocumentElement ()
52 XmlDocument document = new XmlDocument ();
53 document.LoadXml ("<foo />");
54 XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
56 Assert (navigator.Matches ("/foo"));
59 public void TestMatchDocumentElementChild ()
61 XmlDocument document = new XmlDocument ();
62 document.LoadXml ("<foo><bar /></foo>");
63 XPathNavigator navigator = document.DocumentElement.FirstChild.CreateNavigator ();
65 Assert (navigator.Matches ("bar"));
66 Assert (navigator.Matches ("foo/bar"));
69 public void TestMatchAttribute ()
71 XmlDocument document = new XmlDocument ();
72 document.LoadXml ("<foo bar='baz' />");
73 XPathNavigator navigator = document.DocumentElement.Attributes[0].CreateNavigator ();
75 Assert (navigator.Matches ("@bar"));
76 Assert (navigator.Matches ("foo/@bar"));
79 public void TestSlashSlash ()
81 XmlDocument document = new XmlDocument ();
82 document.LoadXml ("<foo><bar><baz/></bar></foo>");
83 XPathNavigator navigator = document.DocumentElement.FirstChild.FirstChild.CreateNavigator ();
85 Assert (navigator.Matches ("foo//baz"));
88 public void TestAbsoluteSlashSlash ()
90 XmlDocument document = new XmlDocument ();
91 document.LoadXml ("<foo><bar><baz/></bar></foo>");
92 XPathNavigator navigator = document.DocumentElement.FirstChild.FirstChild.CreateNavigator ();
94 Assert (navigator.Matches ("//baz"));
97 public void TestMatchDocumentElementWithPredicate ()
99 XmlDocument document = new XmlDocument ();
100 document.LoadXml ("<foo><bar /></foo>");
101 XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
103 Assert (navigator.Matches ("foo[bar]"));
106 public void TestFalseMatchDocumentElementWithPredicate ()
108 XmlDocument document = new XmlDocument ();
109 document.LoadXml ("<foo><bar /></foo>");
110 XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
112 Assert (!navigator.Matches ("foo[baz]"));