XmlSecureResolverTests.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. //
  2. // XmlSecureResolverTests.cs
  3. //
  4. // Authors:
  5. // Atsushi Enomoto <[email protected]>
  6. // Sebastien Pouliot <[email protected]>
  7. //
  8. // Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
  9. //
  10. using System;
  11. using System.Collections;
  12. using System.IO;
  13. using System.Reflection;
  14. using System.Security;
  15. using System.Security.Policy;
  16. using System.Security.Permissions;
  17. using System.Xml;
  18. using NUnit.Framework;
  19. namespace MonoTestsXml
  20. {
  21. [TestFixture]
  22. public class XmlSecureResolverTests
  23. {
  24. [Test]
  25. public void EmptyCtor ()
  26. {
  27. new XmlSecureResolver (null, (Evidence) null);
  28. }
  29. [Test]
  30. [ExpectedException (typeof (NullReferenceException))]
  31. public void EmptyCtorCannotResolve ()
  32. {
  33. XmlSecureResolver r = new XmlSecureResolver (null, (Evidence)null);
  34. r.ResolveUri (null, "http://www.go-mono.com");
  35. }
  36. [Test]
  37. public void EmptyEvidenceWontMatter ()
  38. {
  39. XmlSecureResolver r = new XmlSecureResolver (new XmlUrlResolver (), (Evidence)null);
  40. Uri uri = r.ResolveUri (null, "http://www.go-mono.com");
  41. Assert.IsNotNull (uri);
  42. }
  43. [Test]
  44. public void CreateEvidenceForUrl_Basic ()
  45. {
  46. Evidence e = XmlSecureResolver.CreateEvidenceForUrl (null);
  47. Assert.AreEqual (0, e.Count, "null");
  48. e = XmlSecureResolver.CreateEvidenceForUrl (String.Empty);
  49. Assert.AreEqual (0, e.Count, "String.Empty");
  50. }
  51. [Test]
  52. public void CreateEvidenceForUrl_Local ()
  53. {
  54. // "normal" path
  55. Evidence e = XmlSecureResolver.CreateEvidenceForUrl (Assembly.GetExecutingAssembly ().Location);
  56. Assert.AreEqual (2, e.Count, "Assembly.GetExecutingAssembly ().Location");
  57. bool url = false;
  58. bool zone = false;
  59. IEnumerator en = e.GetHostEnumerator ();
  60. while (en.MoveNext ()) {
  61. if (en.Current is Url)
  62. url = true;
  63. else if (en.Current is Zone)
  64. zone = true;
  65. }
  66. Assert.IsTrue (url, "Url-1");
  67. Assert.IsTrue (zone, "Zone-1");
  68. // file://
  69. e = XmlSecureResolver.CreateEvidenceForUrl (Assembly.GetExecutingAssembly ().CodeBase);
  70. Assert.AreEqual (2, e.Count, "Assembly.GetExecutingAssembly ().CodeBase");
  71. url = false;
  72. zone = false;
  73. en = e.GetHostEnumerator ();
  74. while (en.MoveNext ()) {
  75. if (en.Current is Url)
  76. url = true;
  77. else if (en.Current is Zone)
  78. zone = true;
  79. }
  80. Assert.IsTrue (url, "Url-1");
  81. Assert.IsTrue (zone, "Zone-1");
  82. }
  83. [Test]
  84. public void CreateEvidenceForUrl_Http ()
  85. {
  86. // http://
  87. Evidence e = XmlSecureResolver.CreateEvidenceForUrl ("http://www.go-mono.com");
  88. Assert.AreEqual (3, e.Count, "http://www.go-mono.com");
  89. bool url = false;
  90. bool zone = false;
  91. bool site = false;
  92. IEnumerator en = e.GetHostEnumerator ();
  93. while (en.MoveNext ()) {
  94. if (en.Current is Url)
  95. url = true;
  96. else if (en.Current is Zone)
  97. zone = true;
  98. else if (en.Current is Site)
  99. site = true;
  100. }
  101. Assert.IsTrue (url, "Url-2");
  102. Assert.IsTrue (zone, "Zone-2");
  103. Assert.IsTrue (site, "Site-2");
  104. }
  105. }
  106. }