public void FromXml_NoVersion () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); w.AddAttribute ("Name", se.Attribute ("Name")); nps.FromXml (w); }
public void FromXml_NoName () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); w.AddAttribute ("version", "1"); nps.FromXml (w); // having a null name can badly influence the rest of the class code Assert.IsNull (nps.Name, "Name"); NamedPermissionSet copy = (NamedPermissionSet) nps.Copy (); Assert.IsNull (copy.Name, "Copy.Name"); copy = nps.Copy ("name"); Assert.AreEqual ("name", copy.Name, "Copy(Name).Name"); se = nps.ToXml (); Assert.IsNull (se.Attribute ("Name"), "Name attribute"); #if NET_2_0 Assert.AreEqual (0, nps.GetHashCode (), "GetHashCode"); Assert.IsTrue (nps.Equals (nps), "Equals-self"); #endif }
public void FromXml_NoClass () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("version", se.Attribute ("version")); nps.FromXml (w); // doesn't even care of the class attribute presence }
// [ExpectedException (typeof (ArgumentException))] public void FromXml_WrongVersion () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); // can't modify - so we create our own SecurityElement se2 = new SecurityElement (se.Tag, se.Text); se2.AddAttribute ("class", se.Attribute ("class")); se2.AddAttribute ("version", "2"); se2.AddAttribute ("Name", se.Attribute ("Name")); nps.FromXml (se2); // wow - here we accept a version 2 !!! }
public void FromXml_WrongTagCase () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); se.Tag = se.Tag.ToUpper (); // instead of PermissionSet nps.FromXml (se); }
public void FromXml_WrongClass () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", "Wrong" + se.Attribute ("class")); w.AddAttribute ("version", se.Attribute ("version")); w.AddAttribute ("Name", se.Attribute ("Name")); nps.FromXml (w); // doesn't care of the class name at that stage // anyway the class has already be created so... }
public void FromXml_InvalidPermission () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); // can't modify - so we create our own SecurityElement se2 = new SecurityElement ("InvalidPermissionSet", se.Text); se2.AddAttribute ("class", se.Attribute ("class")); se2.AddAttribute ("version", se.Attribute ("version")); se2.AddAttribute ("Name", se.Attribute ("Name")); nps.FromXml (se2); }
public void FromXml_Null () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); nps.FromXml (null); }
static NamedPermissionSet GetPermissionSet(String[] args, int index) { // Create named permission set with "no name" since you have to give it a name. NamedPermissionSet p = new NamedPermissionSet( "@@no name@@" ); p.FromXml( ReadXmlFile( args, index ) ); return p; }
private void LoadAllPermissionSets() { if ((this.m_permSetElement != null) && (this.m_permSetElement.InternalChildren != null)) { lock (InternalSyncObject) { while ((this.m_permSetElement != null) && (this.m_permSetElement.InternalChildren.Count != 0)) { SecurityElement et = (SecurityElement) this.m_permSetElement.Children[this.m_permSetElement.InternalChildren.Count - 1]; this.m_permSetElement.InternalChildren.RemoveAt(this.m_permSetElement.InternalChildren.Count - 1); if (et.Tag.Equals("PermissionSet") && et.Attribute("class").Equals("System.Security.NamedPermissionSet")) { NamedPermissionSet set = new NamedPermissionSet(); set.FromXmlNameOnly(et); if (set.Name != null) { this.m_namedPermissionSets.Add(set); try { set.FromXml(et, false, true); continue; } catch { this.m_namedPermissionSets.Remove(set); continue; } } } } this.m_permSetElement = null; } } }
internal NamedPermissionSet GetNamedPermissionSetInternal(string name) { this.CheckLoaded(); lock (InternalSyncObject) { foreach (NamedPermissionSet set in this.m_namedPermissionSets) { if (set.Name.Equals(name)) { return set; } } if (this.m_permSetElement != null) { SecurityElement et = this.FindElement(this.m_permSetElement, name); if (et != null) { NamedPermissionSet set2 = new NamedPermissionSet { Name = name }; this.m_namedPermissionSets.Add(set2); try { set2.FromXml(et, false, true); } catch { this.m_namedPermissionSets.Remove(set2); return null; } if (set2.Name != null) { return set2; } this.m_namedPermissionSets.Remove(set2); } } } return null; }