XPathNavigatorMatchesTests.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. //
  2. // MonoTests.System.Xml.XPathNavigatorMatchesTests
  3. //
  4. // Author:
  5. // Jason Diamond <[email protected]>
  6. //
  7. // (C) 2002 Jason Diamond
  8. //
  9. using System;
  10. using System.Xml;
  11. using System.Xml.XPath;
  12. using NUnit.Framework;
  13. namespace MonoTests.System.Xml
  14. {
  15. public class XPathNavigatorMatchesTests : TestCase
  16. {
  17. public XPathNavigatorMatchesTests () : base ("MonoTests.System.Xml.XPathNavigatorMatchesTests testsuite") {}
  18. public XPathNavigatorMatchesTests (string name) : base (name) {}
  19. public void TestMatchRoot ()
  20. {
  21. XmlDocument document = new XmlDocument ();
  22. document.LoadXml ("<foo />");
  23. XPathNavigator navigator = document.CreateNavigator ();
  24. Assert (navigator.Matches ("/"));
  25. }
  26. public void TestFalseMatchRoot ()
  27. {
  28. XmlDocument document = new XmlDocument ();
  29. document.LoadXml ("<foo />");
  30. XPathNavigator navigator = document.CreateNavigator ();
  31. Assert (!navigator.Matches ("foo"));
  32. }
  33. public void TestMatchDocumentElement ()
  34. {
  35. XmlDocument document = new XmlDocument ();
  36. document.LoadXml ("<foo />");
  37. XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
  38. Assert (navigator.Matches ("foo"));
  39. }
  40. public void TestMatchAbsoluteDocumentElement ()
  41. {
  42. XmlDocument document = new XmlDocument ();
  43. document.LoadXml ("<foo />");
  44. XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
  45. Assert (navigator.Matches ("/foo"));
  46. }
  47. public void TestMatchDocumentElementChild ()
  48. {
  49. XmlDocument document = new XmlDocument ();
  50. document.LoadXml ("<foo><bar /></foo>");
  51. XPathNavigator navigator = document.DocumentElement.FirstChild.CreateNavigator ();
  52. Assert (navigator.Matches ("bar"));
  53. Assert (navigator.Matches ("foo/bar"));
  54. }
  55. public void TestMatchAttribute ()
  56. {
  57. XmlDocument document = new XmlDocument ();
  58. document.LoadXml ("<foo bar='baz' />");
  59. XPathNavigator navigator = document.DocumentElement.Attributes[0].CreateNavigator ();
  60. Assert (navigator.Matches ("@bar"));
  61. Assert (navigator.Matches ("foo/@bar"));
  62. }
  63. public void TestSlashSlash ()
  64. {
  65. XmlDocument document = new XmlDocument ();
  66. document.LoadXml ("<foo><bar><baz/></bar></foo>");
  67. XPathNavigator navigator = document.DocumentElement.FirstChild.FirstChild.CreateNavigator ();
  68. Assert (navigator.Matches ("foo//baz"));
  69. }
  70. public void TestAbsoluteSlashSlash ()
  71. {
  72. XmlDocument document = new XmlDocument ();
  73. document.LoadXml ("<foo><bar><baz/></bar></foo>");
  74. XPathNavigator navigator = document.DocumentElement.FirstChild.FirstChild.CreateNavigator ();
  75. Assert (navigator.Matches ("//baz"));
  76. }
  77. public void TestMatchDocumentElementWithPredicate ()
  78. {
  79. XmlDocument document = new XmlDocument ();
  80. document.LoadXml ("<foo><bar /></foo>");
  81. XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
  82. Assert (navigator.Matches ("foo[bar]"));
  83. }
  84. public void TestFalseMatchDocumentElementWithPredicate ()
  85. {
  86. XmlDocument document = new XmlDocument ();
  87. document.LoadXml ("<foo><bar /></foo>");
  88. XPathNavigator navigator = document.DocumentElement.CreateNavigator ();
  89. Assert (!navigator.Matches ("foo[baz]"));
  90. }
  91. }
  92. }