FromXml() public method

public FromXml ( SecurityElement et ) : void
et SecurityElement
return void
Example #1
0
		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);
		}
Example #2
0
		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
		}
Example #3
0
		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
		}
Example #4
0
		// [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 !!!
		}
Example #5
0
		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);
		}
Example #6
0
		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...
		}
Example #7
0
		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);
		}
Example #8
0
		public void FromXml_Null () 
		{
			NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None);
			nps.FromXml (null);
		}
Example #9
0
        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;
 }