(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / corlib / Test / System.Security.Permissions / FileDialogPermissionTest.cs
blobe58e485ca9fe6ad8c7f4988c4bb62a2aac923236
1 //
2 // FileDialogPermissionTest.cs - NUnit Test Cases for FileDialogPermission
3 //
4 // Author:
5 // Sebastien Pouliot (spouliot@motus.com)
6 //
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
8 //
10 using NUnit.Framework;
11 using System;
12 using System.Security;
13 using System.Security.Permissions;
15 namespace MonoTests.System.Security.Permissions {
17 [TestFixture]
18 public class FileDialogPermissionTest : Assertion {
20 private static string className = "System.Security.Permissions.FileDialogPermission, ";
22 [Test]
23 public void PermissionStateNone ()
25 FileDialogPermission p = new FileDialogPermission (PermissionState.None);
26 AssertNotNull ("FileDialogPermission(PermissionState.None)", p);
27 Assert ("IsUnrestricted", !p.IsUnrestricted ());
28 FileDialogPermission copy = (FileDialogPermission) p.Copy ();
29 AssertEquals ("Copy.IsUnrestricted", p.IsUnrestricted (), copy.IsUnrestricted ());
30 SecurityElement se = p.ToXml ();
31 Assert ("ToXml-class", (se.Attributes ["class"] as string).StartsWith (className));
32 AssertEquals ("ToXml-version", "1", (se.Attributes ["version"] as string));
35 [Test]
36 public void PermissionStateUnrestricted ()
38 FileDialogPermission p = new FileDialogPermission (PermissionState.Unrestricted);
39 AssertNotNull ("FileDialogPermission(PermissionState.Unrestricted)", p);
40 Assert ("IsUnrestricted", p.IsUnrestricted ());
41 FileDialogPermission copy = (FileDialogPermission) p.Copy ();
42 AssertEquals ("Copy.IsUnrestricted", p.IsUnrestricted (), copy.IsUnrestricted ());
43 SecurityElement se = p.ToXml ();
44 AssertEquals ("ToXml-Unrestricted", "true", (se.Attributes ["Unrestricted"] as string));
47 [Test]
48 public void Derestricted ()
50 FileDialogPermission p = new FileDialogPermission (PermissionState.Unrestricted);
51 Assert ("IsUnrestricted", p.IsUnrestricted ());
52 p.Access = FileDialogPermissionAccess.None;
53 Assert ("IsUnrestricted", !p.IsUnrestricted ());
56 [Test]
57 public void None ()
59 FileDialogPermission p = new FileDialogPermission (FileDialogPermissionAccess.None);
60 Assert ("IsUnrestricted", !p.IsUnrestricted ());
61 SecurityElement se = p.ToXml ();
62 AssertNull ("ToXml-Access=None", (se.Attributes ["Access"] as string));
65 [Test]
66 public void Open ()
68 FileDialogPermission p = new FileDialogPermission (FileDialogPermissionAccess.Open);
69 Assert ("IsUnrestricted", !p.IsUnrestricted ());
70 SecurityElement se = p.ToXml ();
71 AssertEquals ("ToXml-Access=Open", "Open", (se.Attributes ["Access"] as string));
74 [Test]
75 public void Save ()
77 FileDialogPermission p = new FileDialogPermission (FileDialogPermissionAccess.Save);
78 Assert ("IsUnrestricted", !p.IsUnrestricted ());
79 SecurityElement se = p.ToXml ();
80 AssertEquals ("ToXml-Access=Save", "Save", (se.Attributes ["Access"] as string));
83 [Test]
84 public void OpenSave ()
86 FileDialogPermission p = new FileDialogPermission (FileDialogPermissionAccess.OpenSave);
87 Assert ("IsUnrestricted", p.IsUnrestricted ());
88 SecurityElement se = p.ToXml ();
89 AssertEquals ("ToXml-Unrestricted", "true", (se.Attributes ["Unrestricted"] as string));
92 [Test]
93 public void Access ()
95 FileDialogPermission p = new FileDialogPermission (PermissionState.None);
96 Assert ("Access(default).IsUnrestricted", !p.IsUnrestricted ());
97 p.Access = FileDialogPermissionAccess.None;
98 Assert ("Access(None).IsUnrestricted", !p.IsUnrestricted ());
99 p.Access = FileDialogPermissionAccess.Open;
100 Assert ("Access(Open).IsUnrestricted", !p.IsUnrestricted ());
101 p.Access = FileDialogPermissionAccess.Save;
102 Assert ("Access(Save).IsUnrestricted", !p.IsUnrestricted ());
103 p.Access = FileDialogPermissionAccess.OpenSave;
104 Assert ("Access(OpenSave).IsUnrestricted", p.IsUnrestricted ());
107 [Test]
108 [ExpectedException (typeof (ArgumentNullException))]
109 public void FromXmlNull ()
111 FileDialogPermission p = new FileDialogPermission (PermissionState.None);
112 p.FromXml (null);
115 [Test]
116 [ExpectedException (typeof (ArgumentException))]
117 public void FromXmlInvalidPermission ()
119 FileDialogPermission p = new FileDialogPermission (PermissionState.None);
120 SecurityElement se = p.ToXml ();
121 // can't modify - so we create our own
122 SecurityElement se2 = new SecurityElement ("IInvalidPermission", se.Text);
123 se2.AddAttribute ("class", se.Attribute ("class"));
124 se2.AddAttribute ("version", se.Attribute ("version"));
125 p.FromXml (se2);
128 [Test]
129 [ExpectedException (typeof (ArgumentException))]
130 public void FromXmlWrongVersion ()
132 FileDialogPermission p = new FileDialogPermission (PermissionState.None);
133 SecurityElement se = p.ToXml ();
134 // can't modify - so we create our own
135 SecurityElement se2 = new SecurityElement (se.Tag, se.Text);
136 se2.AddAttribute ("class", se.Attribute ("class"));
137 se2.AddAttribute ("version", "2");
138 p.FromXml (se2);
141 [Test]
142 public void FromXml ()
144 FileDialogPermission p = new FileDialogPermission (PermissionState.None);
145 SecurityElement se = p.ToXml ();
146 AssertNotNull ("ToXml()", se);
148 FileDialogPermission p2 = (FileDialogPermission) p.Copy ();
149 p2.FromXml (se);
150 AssertEquals ("FromXml-None", FileDialogPermissionAccess.None, p2.Access);
152 se.AddAttribute ("Access", "Open");
153 p2.FromXml (se);
154 AssertEquals ("FromXml-Open", FileDialogPermissionAccess.Open, p2.Access);
156 se = p.ToXml ();
157 se.AddAttribute ("Access", "Save");
158 p2.FromXml (se);
159 AssertEquals ("FromXml-Save", FileDialogPermissionAccess.Save, p2.Access);
161 se = p.ToXml ();
162 se.AddAttribute ("Unrestricted", "true");
163 p2.FromXml (se);
164 Assert ("FromXml-Unrestricted", p2.IsUnrestricted ());
167 [Test]
168 public void UnionWithNull ()
170 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
171 FileDialogPermission p2 = null;
172 FileDialogPermission p3 = (FileDialogPermission) p1.Union (p2);
173 AssertEquals ("P1 U null == P1", p1.ToXml ().ToString (), p3.ToXml ().ToString ());
176 [Test]
177 public void UnionWithUnrestricted ()
179 FileDialogPermission p1 = new FileDialogPermission (PermissionState.Unrestricted);
180 FileDialogPermission p2 = new FileDialogPermission (FileDialogPermissionAccess.Open);
181 FileDialogPermission p3 = (FileDialogPermission) p1.Union (p2);
182 Assert ("Unrestricted U P2 == Unrestricted", p3.IsUnrestricted ());
183 p3 = (FileDialogPermission) p2.Union (p1);
184 Assert ("P2 U Unrestricted == Unrestricted", p3.IsUnrestricted ());
187 [Test]
188 public void Union ()
190 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
191 FileDialogPermission p2 = new FileDialogPermission (FileDialogPermissionAccess.Save);
192 FileDialogPermission p3 = (FileDialogPermission) p1.Union (p2);
193 FileDialogPermission p4 = new FileDialogPermission (FileDialogPermissionAccess.OpenSave);
194 AssertEquals ("P1 U P2 == P1+2", p3.ToXml ().ToString (), p4.ToXml ().ToString ());
195 Assert ("P1+2==Unrestricted", p3.IsUnrestricted ());
198 [Test]
199 [ExpectedException (typeof (ArgumentException))]
200 public void UnionWithBadPermission ()
202 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
203 EnvironmentPermission ep2 = new EnvironmentPermission (PermissionState.Unrestricted);
204 FileDialogPermission p3 = (FileDialogPermission) p1.Union (ep2);
207 [Test]
208 public void IntersectWithNull ()
210 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
211 FileDialogPermission p2 = null;
212 FileDialogPermission p3 = (FileDialogPermission) p1.Intersect (p2);
213 AssertNull ("P1 N null == null", p3);
216 [Test]
217 public void IntersectWithUnrestricted ()
219 FileDialogPermission p1 = new FileDialogPermission (PermissionState.Unrestricted);
220 FileDialogPermission p2 = new FileDialogPermission (FileDialogPermissionAccess.Open);
221 FileDialogPermission p3 = (FileDialogPermission) p1.Intersect (p2);
222 Assert ("Unrestricted N P2 == P2", !p3.IsUnrestricted ());
223 AssertEquals ("Unrestricted N EP2 == EP2", p2.ToXml ().ToString (), p3.ToXml ().ToString ());
224 p3 = (FileDialogPermission) p2.Intersect (p1);
225 Assert ("P2 N Unrestricted == P2", !p3.IsUnrestricted ());
226 AssertEquals ("P2 N Unrestricted == P2", p2.ToXml ().ToString (), p3.ToXml ().ToString ());
229 [Test]
230 public void Intersect ()
232 // no intersection
233 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
234 FileDialogPermission p2 = new FileDialogPermission (FileDialogPermissionAccess.Save);
235 FileDialogPermission p3 = (FileDialogPermission) p1.Intersect (p2);
236 AssertNull ("EP1 N EP2 == null", p3);
237 // intersection in open
238 FileDialogPermission p4 = new FileDialogPermission (FileDialogPermissionAccess.Open);
239 p3 = (FileDialogPermission) p4.Intersect (p1);
240 AssertEquals ("Intersect-Open", FileDialogPermissionAccess.Open, p3.Access);
241 // intersection in save
242 FileDialogPermission p5 = new FileDialogPermission (FileDialogPermissionAccess.Save);
243 p3 = (FileDialogPermission) p5.Intersect (p2);
244 AssertEquals ("Intersect-Save", FileDialogPermissionAccess.Save, p3.Access);
245 // intersection in open and save
246 FileDialogPermission p6 = new FileDialogPermission (FileDialogPermissionAccess.OpenSave);
247 FileDialogPermission p7 = new FileDialogPermission (FileDialogPermissionAccess.OpenSave);
248 p3 = (FileDialogPermission) p6.Intersect (p7);
249 AssertEquals ("Intersect-AllAccess-OpenSave", FileDialogPermissionAccess.OpenSave, p3.Access);
250 Assert ("Intersect-OpenSave-Unrestricted", p3.IsUnrestricted ());
253 [Test]
254 [ExpectedException (typeof (ArgumentException))]
255 public void IntersectWithBadPermission ()
257 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
258 EnvironmentPermission ep2 = new EnvironmentPermission (PermissionState.Unrestricted);
259 FileDialogPermission p3 = (FileDialogPermission) p1.Intersect (ep2);
262 [Test]
263 public void IsSubsetOfNull ()
265 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
266 Assert ("IsSubsetOf(null)", !p1.IsSubsetOf (null));
269 [Test]
270 public void IsSubsetOfUnrestricted ()
272 FileDialogPermission p1 = new FileDialogPermission (PermissionState.Unrestricted);
273 FileDialogPermission p2 = new FileDialogPermission (FileDialogPermissionAccess.Open);
274 FileDialogPermission p3 = new FileDialogPermission (PermissionState.Unrestricted);
275 Assert ("Unrestricted.IsSubsetOf()", !p1.IsSubsetOf (p2));
276 Assert ("IsSubsetOf(Unrestricted)", p2.IsSubsetOf (p1));
277 Assert ("Unrestricted.IsSubsetOf(Unrestricted)", p1.IsSubsetOf (p3));
280 [Test]
281 public void IsSubsetOf ()
283 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
284 FileDialogPermission p2 = new FileDialogPermission (FileDialogPermissionAccess.Save);
285 Assert ("IsSubsetOf(nosubset1)", !p1.IsSubsetOf (p2));
286 Assert ("IsSubsetOf(nosubset2)", !p2.IsSubsetOf (p1));
287 FileDialogPermission p3 = new FileDialogPermission (FileDialogPermissionAccess.OpenSave);
288 Assert ("IsSubsetOf(OpenSave)", p1.IsSubsetOf (p3));
289 Assert ("OpenSave.IsSubsetOf()", !p3.IsSubsetOf (p1));
292 [Test]
293 [ExpectedException (typeof (ArgumentException))]
294 public void IsSubsetOfBadPermission ()
296 FileDialogPermission p1 = new FileDialogPermission (FileDialogPermissionAccess.Open);
297 EnvironmentPermission ep2 = new EnvironmentPermission (PermissionState.Unrestricted);
298 Assert ("IsSubsetOf(EnvironmentPermission)", p1.IsSubsetOf (ep2));