XPathNavigatorMatchesTests.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. //
  2. // MonoTests.System.Xml.XPathNavigatorMatchesTests
  3. //
  4. // Authors:
  5. // Jason Diamond <[email protected]>
  6. // Martin Willemoes Hansen <[email protected]>
  7. //
  8. // (C) 2002 Jason Diamond
  9. // (C) 2003 Martin Willemoes Hansen
  10. //
  11. using System;
  12. using System.Xml;
  13. using System.Xml.XPath;
  14. using NUnit.Framework;
  15. namespace MonoTests.System.Xml
  16. {
  17. [TestFixture]
  18. public class XPathNavigatorMatchesTests : Assertion
  19. {
  20. [Test]
  21. public void MatchRoot ()
  22. {
  23. XmlDocument document = new XmlDocument ();
  24. document.LoadXml ("<foo />");
  25. XPathNavigator navigator = document.CreateNavigator ();
  26. Assert (navigator.Matches ("/"));
  27. }
  28. [Test]
  29. public void FalseMatchRoot ()
  30. {
  31. XmlDocument document = new XmlDocument ();
  32. document.LoadXml ("<foo />");
  33. XPathNavigator navigator = document.CreateNavigator ();
  34. Assert (!navigator.Matches ("foo"));
  35. }
  36. [Test]
  37. public void MatchDocumentElement ()
  38. {
  39. XmlDocument document = new XmlDocument ();
  40. document.LoadXml ("<foo />");
  41. XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
  42. Assert (navigator.Matches ("foo"));
  43. }
  44. [Test]
  45. public void MatchAbsoluteDocumentElement ()
  46. {
  47. XmlDocument document = new XmlDocument ();
  48. document.LoadXml ("<foo />");
  49. XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
  50. Assert (navigator.Matches ("/foo"));
  51. }
  52. [Test]
  53. public void MatchDocumentElementChild ()
  54. {
  55. XmlDocument document = new XmlDocument ();
  56. document.LoadXml ("<foo><bar /></foo>");
  57. XPathNavigator navigator = document.DocumentElement.FirstChild.CreateNavigator ();
  58. Assert (navigator.Matches ("bar"));
  59. Assert (navigator.Matches ("foo/bar"));
  60. }
  61. [Test]
  62. public void MatchAttribute ()
  63. {
  64. XmlDocument document = new XmlDocument ();
  65. document.LoadXml ("<foo bar='baz' />");
  66. XPathNavigator navigator = document.DocumentElement.Attributes[0].CreateNavigator ();
  67. Assert (navigator.Matches ("@bar"));
  68. Assert (navigator.Matches ("foo/@bar"));
  69. }
  70. [Test]
  71. public void SlashSlash ()
  72. {
  73. XmlDocument document = new XmlDocument ();
  74. document.LoadXml ("<foo><bar><baz/></bar></foo>");
  75. XPathNavigator navigator = document.DocumentElement.FirstChild.FirstChild.CreateNavigator ();
  76. Assert (navigator.Matches ("foo//baz"));
  77. }
  78. [Test]
  79. public void AbsoluteSlashSlash ()
  80. {
  81. XmlDocument document = new XmlDocument ();
  82. document.LoadXml ("<foo><bar><baz/></bar></foo>");
  83. XPathNavigator navigator = document.DocumentElement.FirstChild.FirstChild.CreateNavigator ();
  84. Assert (navigator.Matches ("//baz"));
  85. }
  86. [Test]
  87. public void MatchDocumentElementWithPredicate ()
  88. {
  89. XmlDocument document = new XmlDocument ();
  90. document.LoadXml ("<foo><bar /></foo>");
  91. XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
  92. Assert (navigator.Matches ("foo[bar]"));
  93. }
  94. [Test]
  95. public void FalseMatchDocumentElementWithPredicate ()
  96. {
  97. XmlDocument document = new XmlDocument ();
  98. document.LoadXml ("<foo><bar /></foo>");
  99. XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
  100. Assert (!navigator.Matches ("foo[baz]"));
  101. }
  102. }
  103. }