1 // 2 // ZoneIdentityPermissionAttributeTest.cs - 3 // NUnit Test Cases for ZoneIdentityPermissionAttribute 4 // 5 // Author: 6 // Sebastien Pouliot <sebastien@ximian.com> 7 // 8 // (C) 2003 Motus Technologies Inc. (http://www.motus.com) 9 // Copyright (C) 2004 Novell, Inc (http://www.novell.com) 10 // 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. 29 // 30 31 using NUnit.Framework; 32 using System; 33 using System.Security; 34 using System.Security.Permissions; 35 36 namespace MonoTests.System.Security.Permissions { 37 38 [TestFixture] 39 public class ZoneIdentityPermissionAttributeTest { 40 41 [Test] Default()42 public void Default () 43 { 44 ZoneIdentityPermissionAttribute a = new ZoneIdentityPermissionAttribute (SecurityAction.Assert); 45 Assert.AreEqual (a.ToString (), a.TypeId.ToString (), "TypeId"); 46 Assert.IsFalse (a.Unrestricted, "Unrestricted"); 47 Assert.AreEqual (SecurityZone.NoZone, a.Zone, "Zone"); 48 49 ZoneIdentityPermission perm = (ZoneIdentityPermission) a.CreatePermission (); 50 Assert.AreEqual (SecurityZone.NoZone, perm.SecurityZone, "CreatePermission-SecurityZone"); 51 } 52 53 [Test] Action()54 public void Action () 55 { 56 ZoneIdentityPermissionAttribute a = new ZoneIdentityPermissionAttribute (SecurityAction.Assert); 57 Assert.AreEqual (SecurityAction.Assert, a.Action, "Action=Assert"); 58 a.Action = SecurityAction.Demand; 59 Assert.AreEqual (SecurityAction.Demand, a.Action, "Action=Demand"); 60 a.Action = SecurityAction.Deny; 61 Assert.AreEqual (SecurityAction.Deny, a.Action, "Action=Deny"); 62 a.Action = SecurityAction.InheritanceDemand; 63 Assert.AreEqual (SecurityAction.InheritanceDemand, a.Action, "Action=InheritanceDemand"); 64 a.Action = SecurityAction.LinkDemand; 65 Assert.AreEqual (SecurityAction.LinkDemand, a.Action, "Action=LinkDemand"); 66 a.Action = SecurityAction.PermitOnly; 67 Assert.AreEqual (SecurityAction.PermitOnly, a.Action, "Action=PermitOnly"); 68 a.Action = SecurityAction.RequestMinimum; 69 Assert.AreEqual (SecurityAction.RequestMinimum, a.Action, "Action=RequestMinimum"); 70 a.Action = SecurityAction.RequestOptional; 71 Assert.AreEqual (SecurityAction.RequestOptional, a.Action, "Action=RequestOptional"); 72 a.Action = SecurityAction.RequestRefuse; 73 Assert.AreEqual (SecurityAction.RequestRefuse, a.Action, "Action=RequestRefuse"); 74 } 75 76 [Test] Action_Invalid()77 public void Action_Invalid () 78 { 79 ZoneIdentityPermissionAttribute a = new ZoneIdentityPermissionAttribute ((SecurityAction)Int32.MinValue); 80 // no validation in attribute 81 } 82 83 [Test] Zone()84 public void Zone () 85 { 86 ZoneIdentityPermissionAttribute a = new ZoneIdentityPermissionAttribute (SecurityAction.Assert); 87 Assert.AreEqual (SecurityZone.NoZone, a.Zone, "Zone=default"); 88 a.Zone = SecurityZone.Internet; 89 Assert.AreEqual (SecurityZone.Internet, a.Zone, "Zone=Internet"); 90 a.Zone = SecurityZone.Intranet; 91 Assert.AreEqual (SecurityZone.Intranet, a.Zone, "Zone=Intranet"); 92 a.Zone = SecurityZone.MyComputer; 93 Assert.AreEqual (SecurityZone.MyComputer, a.Zone, "Zone=MyComputer"); 94 a.Zone = SecurityZone.NoZone; 95 Assert.AreEqual (SecurityZone.NoZone, a.Zone, "Zone=NoZone"); 96 a.Zone = SecurityZone.Trusted; 97 Assert.AreEqual (SecurityZone.Trusted, a.Zone, "Zone=Trusted"); 98 a.Zone = SecurityZone.Untrusted; 99 Assert.AreEqual (SecurityZone.Untrusted, a.Zone, "Zone=Untrusted"); 100 } 101 102 [Test] Zone_Invalid()103 public void Zone_Invalid () 104 { 105 ZoneIdentityPermissionAttribute a = new ZoneIdentityPermissionAttribute (SecurityAction.Assert); 106 a.Zone = (SecurityZone)Int32.MinValue; 107 // no validation in attribute 108 } 109 110 [Test] TypeId()111 public void TypeId () 112 { 113 ZoneIdentityPermissionAttribute a = new ZoneIdentityPermissionAttribute (SecurityAction.Assert); 114 Assert.AreEqual (a.ToString (), a.TypeId.ToString (), "TypeId"); 115 } 116 117 [Test] 118 [Category ("NotWorking")] Unrestricted()119 public void Unrestricted () 120 { 121 ZoneIdentityPermissionAttribute a = new ZoneIdentityPermissionAttribute (SecurityAction.Assert); 122 a.Unrestricted = true; 123 IPermission perm = a.CreatePermission (); 124 } 125 126 [Test] Attributes()127 public void Attributes () 128 { 129 Type t = typeof (ZoneIdentityPermissionAttribute); 130 Assert.IsTrue (t.IsSerializable, "IsSerializable"); 131 132 object[] attrs = t.GetCustomAttributes (typeof (AttributeUsageAttribute), false); 133 Assert.AreEqual (1, attrs.Length, "AttributeUsage"); 134 AttributeUsageAttribute aua = (AttributeUsageAttribute)attrs [0]; 135 Assert.IsTrue (aua.AllowMultiple, "AllowMultiple"); 136 Assert.IsFalse (aua.Inherited, "Inherited"); 137 AttributeTargets at = (AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method); 138 Assert.AreEqual (at, aua.ValidOn, "ValidOn"); 139 } 140 } 141 } 142