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