(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / corlib / Test / System.Security.Policy / SiteMembershipConditionTest.cs
blobfe2110ee93a999c1268fbef630924a5d85f829bd
1 //
2 // SiteMembershipConditionTest.cs -
3 // NUnit Test Cases for SiteMembershipCondition
4 //
5 // Author:
6 // Sebastien Pouliot <sebastien@ximian.com>
7 //
8 // (C) 2004 Motus Technologies Inc. (http://www.motus.com)
9 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 //
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 //
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using NUnit.Framework;
32 using System;
33 using System.Collections;
34 using System.Security;
35 using System.Security.Policy;
37 namespace MonoTests.System.Security.Policy {
39 [TestFixture]
40 public class SiteMembershipConditionTest {
42 [Test]
43 [ExpectedException (typeof (ArgumentNullException))]
44 public void SiteMembershipCondition_Null ()
46 SiteMembershipCondition smc = new SiteMembershipCondition (null);
49 [Test]
50 [ExpectedException (typeof (ArgumentException))]
51 public void SiteMembershipCondition_Empty ()
53 SiteMembershipCondition smc = new SiteMembershipCondition (String.Empty);
56 [Test]
57 [ExpectedException (typeof (ArgumentException))]
58 public void SiteMembershipCondition_FileUrl ()
60 SiteMembershipCondition smc = new SiteMembershipCondition ("file://mono/index.html");
63 [Test]
64 [ExpectedException (typeof (ArgumentException))]
65 public void SiteMembershipCondition_FullUrlWithPort ()
67 SiteMembershipCondition smc = new SiteMembershipCondition ("http://www.go-mono.com:8080/index.html");
70 [Test]
71 public void SiteMembershipCondition_GoMonoWebSite ()
73 SiteMembershipCondition smc = new SiteMembershipCondition ("www.go-mono.com");
74 Assert.AreEqual ("www.go-mono.com", smc.Site, "Site");
75 Assert.AreEqual ("Site - www.go-mono.com", smc.ToString (), "ToString");
77 SiteMembershipCondition smc2 = (SiteMembershipCondition) smc.Copy ();
78 Assert.AreEqual (smc.Site, smc2.Site, "Copy.Site");
79 Assert.AreEqual (smc.GetHashCode (), smc2.GetHashCode (), "Copy.GetHashCode");
81 SecurityElement se = smc2.ToXml ();
82 SiteMembershipCondition smc3 = new SiteMembershipCondition ("*");
83 smc3.FromXml (se);
84 Assert.AreEqual (smc.Site, smc3.Site, "ToXml/FromXml");
86 Assert.IsTrue (smc.Equals (smc2), "Equals");
87 SiteMembershipCondition smc4 = new SiteMembershipCondition ("go-mono.com");
88 Assert.IsFalse (smc.Equals (smc4), "!Equals");
91 [Test]
92 public void Site_AllGoMonoSite ()
94 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
95 Assert.AreEqual ("*.go-mono.com", smc.Site, "Site");
96 Assert.AreEqual ("Site - *.go-mono.com", smc.ToString (), "ToString");
98 SiteMembershipCondition smc2 = (SiteMembershipCondition) smc.Copy ();
99 Assert.AreEqual (smc.Site, smc2.Site, "Copy.Site");
100 Assert.AreEqual (smc.GetHashCode (), smc2.GetHashCode (), "Copy.GetHashCode");
102 SecurityElement se = smc2.ToXml ();
103 SiteMembershipCondition smc3 = new SiteMembershipCondition ("*");
104 smc3.FromXml (se);
105 Assert.AreEqual (smc.Site, smc3.Site, "ToXml/FromXml");
107 Assert.IsTrue (smc.Equals (smc2), "Equals");
108 SiteMembershipCondition smc4 = new SiteMembershipCondition ("go-mono.com");
109 Assert.IsFalse (smc.Equals (smc4), "!Equals");
112 [Test]
113 public void Check ()
115 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
117 Evidence e = null;
118 Assert.IsFalse (smc.Check (e), "Check(null)");
119 e = new Evidence ();
120 Assert.IsFalse (smc.Check (e), "Check (empty)");
121 e.AddHost (new Zone (SecurityZone.MyComputer));
122 Assert.IsFalse (smc.Check (e), "Check (zone)");
124 Site s = new Site ("*.go-mono.com");
125 e.AddAssembly (s);
126 Assert.IsFalse (smc.Check (e), "Check (site-assembly)");
127 e.AddHost (s);
128 Assert.IsTrue (smc.Check (e), "Check (site-host)");
130 e = new Evidence ();
131 e.AddHost (new Site ("www.go-mono.com"));
132 Assert.IsTrue (smc.Check (e), "Check(+-)");
134 e = new Evidence ();
135 e.AddHost (new Site ("*.go-mono.org"));
136 Assert.IsFalse (smc.Check (e), "Check(-)");
139 [Test]
140 public void Equals ()
142 SiteMembershipCondition smc1 = new SiteMembershipCondition ("*.go-mono.com");
143 Assert.IsFalse (smc1.Equals (null), "Null");
144 SiteMembershipCondition smc2 = new SiteMembershipCondition ("*.Go-Mono.com");
145 Assert.IsTrue (smc1.Equals (smc2), "CaseSensitive");
148 [Test]
149 [ExpectedException (typeof (ArgumentNullException))]
150 public void FromXml_Null ()
152 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
153 smc.FromXml (null);
156 [Test]
157 [ExpectedException (typeof (ArgumentException))]
158 public void FromXml_InvalidTag ()
160 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
161 SecurityElement se = smc.ToXml ();
162 se.Tag = "IMonoship";
163 smc.FromXml (se);
166 [Test]
167 public void FromXml_InvalidClass ()
169 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
170 SecurityElement se = smc.ToXml ();
171 se.Attributes ["class"] = "Hello world";
172 smc.FromXml (se);
175 [Test]
176 public void FromXml_NoClass ()
178 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
179 SecurityElement se = smc.ToXml ();
181 SecurityElement w = new SecurityElement (se.Tag);
182 w.AddAttribute ("version", se.Attribute ("version"));
183 smc.FromXml (w);
184 // doesn't even care of the class attribute presence
187 [Test]
188 public void FromXml_InvalidVersion ()
190 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
191 SecurityElement se = smc.ToXml ();
192 se.Attributes ["version"] = "2";
193 smc.FromXml (se);
196 [Test]
197 public void FromXml_NoVersion ()
199 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
200 SecurityElement se = smc.ToXml ();
202 SecurityElement w = new SecurityElement (se.Tag);
203 w.AddAttribute ("class", se.Attribute ("class"));
204 smc.FromXml (w);
207 [Test]
208 public void FromXml_PolicyLevel ()
210 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
211 SecurityElement se = smc.ToXml ();
212 // is it accepted for all policy levels ?
213 IEnumerator e = SecurityManager.PolicyHierarchy ();
214 while (e.MoveNext ()) {
215 PolicyLevel pl = e.Current as PolicyLevel;
216 SiteMembershipCondition spl = new SiteMembershipCondition ("*");
217 spl.FromXml (se, pl);
218 Assert.IsTrue (spl.Equals (smc), "FromXml(PolicyLevel='" + pl.Label + "')");
220 // yes!
223 [Test]
224 public void ToXml_Null ()
226 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
227 // no ArgumentNullException here
228 SecurityElement se = smc.ToXml (null);
229 Assert.IsNotNull (se, "ToXml(null)");
232 [Test]
233 public void ToXml_PolicyLevel ()
235 SiteMembershipCondition smc = new SiteMembershipCondition ("*.go-mono.com");
236 SecurityElement se = smc.ToXml ();
237 string s = smc.ToXml ().ToString ();
238 // is it accepted for all policy levels ?
239 IEnumerator e = SecurityManager.PolicyHierarchy ();
240 while (e.MoveNext ()) {
241 PolicyLevel pl = e.Current as PolicyLevel;
242 SiteMembershipCondition spl = new SiteMembershipCondition ("*");
243 spl.FromXml (se, pl);
244 Assert.AreEqual (s, spl.ToXml (pl).ToString (), "ToXml(PolicyLevel='" + pl.Label + "')");
246 // yes!
249 [Test]
250 public void ToFromXmlRoundTrip ()
252 SiteMembershipCondition smc1 = new SiteMembershipCondition ("*.go-mono.com");
253 SecurityElement se = smc1.ToXml ();
255 SiteMembershipCondition smc2 = new SiteMembershipCondition ("*");
256 smc2.FromXml (se);
258 Assert.AreEqual (smc1.GetHashCode (), smc2.GetHashCode (), "ToFromXmlRoundTrip");