Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Pouliot <sebastien@ximian.com>2004-08-03 22:23:50 +0400
committerSebastien Pouliot <sebastien@ximian.com>2004-08-03 22:23:50 +0400
commit2e6376961d163494dab5d7857e0217f265074395 (patch)
treebb8345619133d4503e876f9054b95750c91f2e39 /mcs/class/corlib/System.Security.Permissions
parent60bf77af62b3c8f513993bb7b95bc7b42e49ce94 (diff)
2004-08-03 Sebastien Pouliot <sebastien@ximian.com>
* ZoneIdentityPermission.cs: Fixed buglets wrt new unit tests. Added globalization to exceptions. svn path=/trunk/mcs/; revision=31816
Diffstat (limited to 'mcs/class/corlib/System.Security.Permissions')
-rw-r--r--mcs/class/corlib/System.Security.Permissions/ChangeLog3
-rw-r--r--mcs/class/corlib/System.Security.Permissions/ZoneIdentityPermission.cs84
2 files changed, 54 insertions, 33 deletions
diff --git a/mcs/class/corlib/System.Security.Permissions/ChangeLog b/mcs/class/corlib/System.Security.Permissions/ChangeLog
index 66d3db41974..aa11ef66df6 100644
--- a/mcs/class/corlib/System.Security.Permissions/ChangeLog
+++ b/mcs/class/corlib/System.Security.Permissions/ChangeLog
@@ -1,7 +1,8 @@
2004-08-03 Sebastien Pouliot <sebastien@ximian.com>
* ZoneIdentityPermission.cs: Reordered attributes in ToXml and added
- missing Zone attribute.
+ missing Zone attribute. Fixed buglets wrt new unit tests. Added
+ globalization to exceptions.
2004-07-14 Sebastien Pouliot <sebastien@ximian.com>
diff --git a/mcs/class/corlib/System.Security.Permissions/ZoneIdentityPermission.cs b/mcs/class/corlib/System.Security.Permissions/ZoneIdentityPermission.cs
index 525ef00b9ac..5105feecbd4 100644
--- a/mcs/class/corlib/System.Security.Permissions/ZoneIdentityPermission.cs
+++ b/mcs/class/corlib/System.Security.Permissions/ZoneIdentityPermission.cs
@@ -3,6 +3,7 @@
//
// Authors:
// Gonzalo Paniagua Javier (gonzalo@ximian.com)
+// Sebastien Pouliot <sebastien@ximian.com>
//
// (C) 2002 Ximian, Inc (http://www.ximian.com)
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
@@ -26,7 +27,9 @@
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+
using System;
+using System.Globalization;
using System.Security;
namespace System.Security.Permissions {
@@ -34,22 +37,27 @@ namespace System.Security.Permissions {
[Serializable]
public sealed class ZoneIdentityPermission : CodeAccessPermission, IBuiltInPermission {
- SecurityZone zone;
+ private SecurityZone zone;
public ZoneIdentityPermission (PermissionState state)
{
- if (state == PermissionState.Unrestricted)
- throw new ArgumentException ("unrestricted not allowed");
-
- if (state != PermissionState.None)
- throw new ArgumentException ("invalid state");
-
- zone = SecurityZone.NoZone;
+ switch (state) {
+ case PermissionState.None:
+ zone = SecurityZone.NoZone;
+ break;
+ case PermissionState.Unrestricted:
+ throw new ArgumentException (Locale.GetText (
+ "unrestricted not allowed"));
+ default:
+ throw new ArgumentException (Locale.GetText (
+ "invalid state"));
+ }
}
public ZoneIdentityPermission (SecurityZone zone)
{
- this.zone = zone;
+ // also needs the validations
+ SecurityZone = zone;
}
public override IPermission Copy ()
@@ -62,10 +70,13 @@ namespace System.Security.Permissions {
if (target == null)
return zone == SecurityZone.NoZone;
- if (!(target is ZoneIdentityPermission))
- throw new ArgumentException ();
+ ZoneIdentityPermission zip = (target as ZoneIdentityPermission);
+ if (zip == null) {
+ throw new ArgumentException (Locale.GetText (
+ "Invalid permission"));
+ }
- return zone != ((ZoneIdentityPermission) target).zone;
+ return (zone == zip.zone);
}
public override IPermission Union (IPermission target)
@@ -73,17 +84,23 @@ namespace System.Security.Permissions {
if (target == null)
return (zone == SecurityZone.NoZone) ? null : Copy ();
- if (!(target is ZoneIdentityPermission))
- throw new ArgumentException ();
+ ZoneIdentityPermission zip = (target as ZoneIdentityPermission);
+ if (zip == null) {
+ throw new ArgumentException (Locale.GetText (
+ "Invalid permission"));
+ }
- ZoneIdentityPermission se = (ZoneIdentityPermission) target;
- if (zone == se.zone || se.zone == SecurityZone.NoZone)
+ if (zone == zip.zone || zip.zone == SecurityZone.NoZone)
return Copy ();
if (zone == SecurityZone.NoZone)
- return se.Copy ();
-
+ return zip.Copy ();
+#if NET_2_0
+ throw new ArgumentException (Locale.GetText (
+ "Union impossible"));
+#else
return null;
+#endif
}
public override IPermission Intersect (IPermission target)
@@ -91,10 +108,13 @@ namespace System.Security.Permissions {
if (target == null || zone == SecurityZone.NoZone)
return null;
- if (!(target is ZoneIdentityPermission))
- throw new ArgumentException ();
+ ZoneIdentityPermission zip = (target as ZoneIdentityPermission);
+ if (zip == null) {
+ throw new ArgumentException (Locale.GetText (
+ "Invalid permission"));
+ }
- if (zone == ((ZoneIdentityPermission) target).zone)
+ if (zone == zip.zone)
return Copy ();
return null;
@@ -103,10 +123,12 @@ namespace System.Security.Permissions {
public override void FromXml (SecurityElement esd)
{
if (esd == null)
- throw new ArgumentException ("esd is null");
+ throw new ArgumentException ("esd");
- if (esd.Attribute ("version") != "1")
- throw new ArgumentException ("version attributte is wrong");
+ if (esd.Attribute ("version") != "1") {
+ throw new ArgumentException (Locale.GetText (
+ "version attributte is wrong"));
+ }
string zoneName = esd.Attribute ("Zone");
zone = (SecurityZone) Enum.Parse (typeof (SecurityZone), zoneName);
@@ -123,15 +145,13 @@ namespace System.Security.Permissions {
return se;
}
- public SecurityZone SecurityZone
- {
- get {
- return zone;
- }
-
+ public SecurityZone SecurityZone {
+ get { return zone; }
set {
- if (!Enum.IsDefined (typeof (SecurityZone), value))
- throw new ArgumentException ("invalid zone");
+ if (!Enum.IsDefined (typeof (SecurityZone), value)) {
+ throw new ArgumentException (Locale.GetText (
+ "invalid zone"));
+ }
zone = value;
}
}