public void Url_Null() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); uip.Url = null; Assert.AreEqual(String.Empty, uip.Url, "Url"); }
// </Snippet2> // <Snippet3> // Union creates a new permission that is the union of the current permission // and the specified permission. private static void UnionDemo() { UrlIdentityPermission permIdPerm1 = new UrlIdentityPermission("http://www.fourthcoffee.com/process/"); UrlIdentityPermission permIdPerm2 = new UrlIdentityPermission("http://www.fourthcoffee.com/*"); UrlIdentityPermission p3 = (UrlIdentityPermission)permIdPerm1.Union(permIdPerm2); try { if (p3 != null) { Console.WriteLine("The union of " + permIdPerm1.Url + " and \n\t" + permIdPerm2.Url + " is \n\t" + p3.Url + "\n"); } else { Console.WriteLine("The union of " + permIdPerm1.Url + " and \n\t" + permIdPerm2.Url + " is null.\n"); } } catch (SystemException e) { Console.WriteLine("The union of " + permIdPerm1.Url + " and \n\t" + permIdPerm2.Url + " failed."); Console.WriteLine(e.Message); } }
public void Union_None() { // Union with none is same UrlIdentityPermission uip1 = new UrlIdentityPermission(PermissionState.None); UrlIdentityPermission uip2 = new UrlIdentityPermission(PermissionState.None); // a. source (this) is none foreach (string s in GoodUrls) { uip1.Url = s; UrlIdentityPermission union = (UrlIdentityPermission)uip1.Union(uip2); // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format // so we only compare the start of the url Assert.IsTrue(union.Url.StartsWith(uip1.Url), s); } uip1 = new UrlIdentityPermission(PermissionState.None); // b. destination (target) is none foreach (string s in GoodUrls) { uip2.Url = s; UrlIdentityPermission union = (UrlIdentityPermission)uip2.Union(uip1); // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format // so we only compare the start of the url Assert.IsTrue(union.Url.StartsWith(uip2.Url), s); } }
public void Url_LoneStar() { Url u = new Url("*"); #if NET_2_0 Assert.AreEqual("*", u.Value, "Value"); Assert.AreEqual("<System.Security.Policy.Url version=\"1\">" + Environment.NewLine + "<Url>*</Url>" + Environment.NewLine + "</System.Security.Policy.Url>" + Environment.NewLine, u.ToString(), "ToString"); #else Assert.AreEqual("file://*", u.Value, "Value"); Assert.AreEqual("<System.Security.Policy.Url version=\"1\">" + Environment.NewLine + " <Url>file://*</Url>" + Environment.NewLine + "</System.Security.Policy.Url>" + Environment.NewLine, u.ToString(), "ToString"); #endif Url u2 = (Url)u.Copy(); Assert.AreEqual(u.Value, u2.Value, "Copy.Value"); Assert.AreEqual(u.GetHashCode(), u2.GetHashCode(), "Copy.GetHashCode"); UrlIdentityPermission uip = (UrlIdentityPermission)u.CreateIdentityPermission(null); Assert.AreEqual(u.Value, uip.Url, "CreateIdentityPermission"); Assert.IsTrue(u.Equals(u2), "Equals"); Url u3 = new Url("index.html"); Assert.IsFalse(u.Equals(u3), "!Equals(*)"); u2 = new Url("file://*"); Assert.AreEqual("file://*", u2.Value, "Value-file://*"); Assert.IsTrue(u.Equals(u2), "Equals-file://*"); }
public void IsSubset_Different() { UrlIdentityPermission uip1 = new UrlIdentityPermission(GoodUrls [0]); UrlIdentityPermission uip2 = new UrlIdentityPermission(GoodUrls [1]); Assert.IsFalse(uip1.IsSubsetOf(uip2), "Mono subset Novell"); Assert.IsFalse(uip2.IsSubsetOf(uip1), "Novell subset Mono"); }
public void Intersect_Different() { UrlIdentityPermission uip1 = new UrlIdentityPermission(GoodUrls [0]); UrlIdentityPermission uip2 = new UrlIdentityPermission(GoodUrls [1]); UrlIdentityPermission result = (UrlIdentityPermission)uip1.Intersect(uip2); Assert.IsNull(result, "Mono N Novell"); }
public void FromXml_WrongTag() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); SecurityElement se = uip.ToXml(); se.Tag = "IMono"; uip.FromXml(se); }
public void FromXml_WrongTagCase() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); SecurityElement se = uip.ToXml(); se.Tag = "IPERMISSION"; // instead of IPermission uip.FromXml(se); }
public void FromXml_WrongVersion() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); SecurityElement se = uip.ToXml(); se.Attributes.Remove("version"); se.Attributes.Add("version", "2"); uip.FromXml(se); }
public void Url() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); foreach (string s in GoodUrls) { uip.Url = s; Assert.AreEqual(s, uip.Url, s); } }
public void FromXml_NoVersion() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); SecurityElement se = uip.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("class", se.Attribute("class")); uip.FromXml(w); }
public void IsSubset_Self() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); Assert.IsTrue(uip.IsSubsetOf(uip), "None"); foreach (string s in GoodUrls) { uip.Url = s; Assert.IsTrue(uip.IsSubsetOf(uip), s); } }
public void Intersect_Null() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); // No intersection with null foreach (string s in GoodUrls) { uip.Url = s; Assert.IsNull(uip.Intersect(null), s); } }
public void FromXml_NoClass() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); SecurityElement se = uip.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("version", se.Attribute("version")); uip.FromXml(w); // doesn't even care of the class attribute presence }
public void IsSubset_Null() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); Assert.IsTrue(uip.IsSubsetOf(null), "Empty"); foreach (string s in GoodUrls) { uip.Url = s; Assert.IsFalse(uip.IsSubsetOf(null), s); } }
public void FromXml_WrongClass() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); SecurityElement se = uip.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("class", "Wrong" + se.Attribute("class")); w.AddAttribute("version", se.Attribute("version")); uip.FromXml(w); // doesn't care of the class name at that stage // anyway the class has already be created so... }
//</Snippet4> //<Snippet5> //Copy creates and returns an identical copy of the current permission. private static void CopyDemo() { UrlIdentityPermission permIdPerm1 = new UrlIdentityPermission("http://www.fourthcoffee.com/process/*"); //<Snippet7> UrlIdentityPermission permIdPerm2 = new UrlIdentityPermission(PermissionState.None); //</Snippet7> permIdPerm2 = (UrlIdentityPermission)permIdPerm1.Copy(); if (permIdPerm2 != null) { Console.WriteLine("The copy succeeded: " + permIdPerm2.ToString() + " \n"); } }
public void Copy() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); foreach (string s in GoodUrls) { uip.Url = s; UrlIdentityPermission copy = (UrlIdentityPermission)uip.Copy(); // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format // so we only compare the start of the url Assert.AreEqual(uip.Url, copy.Url, "Url"); } }
public void Intersect_Self() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); foreach (string s in GoodUrls) { uip.Url = s; UrlIdentityPermission result = (UrlIdentityPermission)uip.Intersect(uip); // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format // so we only compare the start of the url Assert.IsTrue(result.Url.StartsWith(uip.Url), s); } }
public static void UrlIdentityPermissionCallMethods() { UrlIdentityPermission uip = new UrlIdentityPermission(new PermissionState()); UrlIdentityPermission uip2 = new UrlIdentityPermission("testsite"); IPermission ip = uip.Copy(); IPermission ip2 = uip.Intersect(ip); bool testbool = uip.IsSubsetOf(ip); ip2 = uip.Union(ip); SecurityElement se = new SecurityElement(""); uip.FromXml(se); se = uip.ToXml(); }
public void Union_Null() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); // Union with null is a simple copy foreach (string s in GoodUrls) { uip.Url = s; UrlIdentityPermission union = (UrlIdentityPermission)uip.Union(null); // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format // so we only compare the start of the url Assert.IsTrue(union.Url.StartsWith(uip.Url), s); } }
public void PermissionStateUnrestricted() { // In 2.0 Unrestricted are permitted for identity permissions UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.Unrestricted); Assert.AreEqual(String.Empty, uip.Url, "Url"); SecurityElement se = uip.ToXml(); // only class and version are present Assert.AreEqual(3, se.Attributes.Count, "Xml-Attributes"); Assert.IsNull(se.Children, "Xml-Children"); // and they aren't equals to None Assert.IsFalse(uip.Equals(new UrlIdentityPermission(PermissionState.None))); }
public void Union_Self() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); UrlIdentityPermission union = (UrlIdentityPermission)uip.Union(uip); Assert.IsNull(union, "None U None"); foreach (string s in GoodUrls) { uip.Url = s; union = (UrlIdentityPermission)uip.Union(uip); // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format // so we only compare the start of the url Assert.IsTrue(union.Url.StartsWith(uip.Url), s); } }
internal static void GetZoneAndOriginHelper(PermissionSet grantSet, PermissionSet deniedSet, ArrayList zoneList, ArrayList originList) { ZoneIdentityPermission zone = (ZoneIdentityPermission)grantSet.GetPermission(typeof(ZoneIdentityPermission)); UrlIdentityPermission url = (UrlIdentityPermission)grantSet.GetPermission(typeof(UrlIdentityPermission)); if (zone != null) { zoneList.Add(zone.SecurityZone); } if (url != null) { originList.Add(url.Url); } }
public void PermissionState_None() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); // that cause a NullReferenceException before 2.0 Assert.AreEqual(String.Empty, uip.Url, "Url"); SecurityElement se = uip.ToXml(); // only class and version are present Assert.AreEqual(2, se.Attributes.Count, "Xml-Attributes"); Assert.IsNull(se.Children, "Xml-Children"); UrlIdentityPermission copy = (UrlIdentityPermission)uip.Copy(); Assert.IsFalse(Object.ReferenceEquals(uip, copy), "ReferenceEquals"); }
public void Url() { UrlIdentityPermission uip = new UrlIdentityPermission(PermissionState.None); foreach (string s in GoodUrls) { uip.Url = s; #if NET_2_0 Assert.AreEqual(s, uip.Url, s); #else // Fx 1.0/1.1 adds a '/' at the end, while 2.0 keeps the original format // so we only compare the start of the url #endif } }
public void DefaultPermission() { UrlIdentityPermissionAttribute a = new UrlIdentityPermissionAttribute(SecurityAction.Assert); Assert.IsNull(a.Url, "Url"); // UrlIdentityPermission would throw a ArgumentNullException for a null URL ... UrlIdentityPermission perm = (UrlIdentityPermission)a.CreatePermission(); // ... but this works ... Assert.IsNotNull(perm, "CreatePermission(null url)"); // ... but this doesn't! string url = perm.Url; Assert.AreEqual(String.Empty, url, "Url-2"); }
public void Union_Different() { UrlIdentityPermission uip1 = new UrlIdentityPermission(GoodUrls [0]); UrlIdentityPermission uip2 = new UrlIdentityPermission(GoodUrls [1]); UrlIdentityPermission result = (UrlIdentityPermission)uip1.Union(uip2); Assert.IsNotNull(result, "Mono U Novell"); // new XML format is used to contain more than one site SecurityElement se = result.ToXml(); Assert.AreEqual(2, se.Children.Count, "Childs"); Assert.AreEqual(GoodUrls [0], (se.Children [0] as SecurityElement).Attribute("Url"), "Url#1"); Assert.AreEqual(GoodUrls [1], (se.Children [1] as SecurityElement).Attribute("Url"), "Url#2"); // strangely it is still versioned as 'version="1"'. Assert.AreEqual("1", se.Attribute("version"), "Version"); }
// </Snippet3> // <Snippet4> // Intersect creates and returns a new permission that is the intersection of the // current permission and the permission specified. private static void IntersectDemo() { UrlIdentityPermission permIdPerm1 = new UrlIdentityPermission("http://www.fourthcoffee.com/process/"); UrlIdentityPermission permIdPerm2 = new UrlIdentityPermission("http://www.fourthcoffee.com/*"); UrlIdentityPermission p3 = (UrlIdentityPermission)permIdPerm1.Intersect(permIdPerm2); if (p3 != null) { Console.WriteLine("The intersection of " + permIdPerm1.Url + " and \n\t" + permIdPerm2.Url + " is " + p3.Url + "\n"); } else { Console.WriteLine("The intersection of " + permIdPerm1.Url + " and \n\t" + permIdPerm2.Url + " is null.\n"); } }
//</Snippet5> //<Snippet6> // ToXml creates an XML encoding of the permission and its current state; FromXml reconstructs a // permission with the specified state from the XML encoding. private static void ToFromXmlDemo() { UrlIdentityPermission permIdPerm1 = new UrlIdentityPermission("http://www.fourthcoffee.com/process/*"); UrlIdentityPermission permIdPerm2 = new UrlIdentityPermission(PermissionState.None); permIdPerm2.FromXml(permIdPerm1.ToXml()); bool result = permIdPerm2.Equals(permIdPerm1); if (result) { Console.WriteLine("Result of ToFromXml = " + permIdPerm2.ToString()); } else { Console.WriteLine(permIdPerm2.ToString()); Console.WriteLine(permIdPerm1.ToString()); } }