2 // FileDialogPermissionTest.cs - NUnit Test Cases for FileDialogPermission
5 // Sebastien Pouliot (spouliot@motus.com)
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
10 using NUnit
.Framework
;
12 using System
.Security
;
13 using System
.Security
.Permissions
;
15 namespace MonoTests
.System
.Security
.Permissions
{
18 public class FileDialogPermissionTest
: Assertion
{
20 private static string className
= "System.Security.Permissions.FileDialogPermission, ";
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));
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));
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 ());
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));
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));
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));
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));
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 ());
108 [ExpectedException (typeof (ArgumentNullException
))]
109 public void FromXmlNull ()
111 FileDialogPermission p
= new FileDialogPermission (PermissionState
.None
);
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"));
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");
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 ();
150 AssertEquals ("FromXml-None", FileDialogPermissionAccess
.None
, p2
.Access
);
152 se
.AddAttribute ("Access", "Open");
154 AssertEquals ("FromXml-Open", FileDialogPermissionAccess
.Open
, p2
.Access
);
157 se
.AddAttribute ("Access", "Save");
159 AssertEquals ("FromXml-Save", FileDialogPermissionAccess
.Save
, p2
.Access
);
162 se
.AddAttribute ("Unrestricted", "true");
164 Assert ("FromXml-Unrestricted", p2
.IsUnrestricted ());
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 ());
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 ());
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 ());
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
);
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
);
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 ());
230 public void Intersect ()
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 ());
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
);
263 public void IsSubsetOfNull ()
265 FileDialogPermission p1
= new FileDialogPermission (FileDialogPermissionAccess
.Open
);
266 Assert ("IsSubsetOf(null)", !p1
.IsSubsetOf (null));
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
));
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
));
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
));