private static string className = "System.Security.Permissions.RegistryPermission, ";
private static string keyCurrentUser = @"HKEY_CURRENT_USER\Software\Novell iFolder\spouliot\Home";
+ private static string keyCurrentUserSubset = @"HKEY_CURRENT_USER\Software\Novell iFolder\";
private static string keyLocalMachine = @"HKEY_LOCAL_MACHINE\SOFTWARE\Novell\Novell iFolder\1.00.000";
+ private static string keyLocalMachineSubset = @"HKEY_LOCAL_MACHINE\SOFTWARE\Novell\";
[Test]
public void PermissionStateNone ()
AssertEquals ("AddPathList-ToXml-Write", @"HKEY_LOCAL_MACHINE\SOFTWARE\Novell\Novell iFolder\1.00.000;HKEY_CURRENT_USER\Software\Novell iFolder\spouliot\Home", se.Attribute ("Write"));
}
+ [Test]
+ public void AddPathList_Subset ()
+ {
+ RegistryPermission ep = new RegistryPermission (PermissionState.None);
+ ep.AddPathList (RegistryPermissionAccess.AllAccess, keyLocalMachine);
+ ep.AddPathList (RegistryPermissionAccess.AllAccess, keyLocalMachineSubset);
+ SecurityElement se = ep.ToXml ();
+ AssertEquals ("AddPathList-ToXml-Create", keyLocalMachineSubset, se.Attribute ("Create"));
+ AssertEquals ("AddPathList-ToXml-Read", keyLocalMachineSubset, se.Attribute ("Read"));
+ AssertEquals ("AddPathList-ToXml-Write", keyLocalMachineSubset, se.Attribute ("Write"));
+
+ ep = new RegistryPermission (PermissionState.None);
+ ep.AddPathList (RegistryPermissionAccess.AllAccess, keyLocalMachine);
+ ep.AddPathList (RegistryPermissionAccess.Create, keyLocalMachineSubset);
+ ep.AddPathList (RegistryPermissionAccess.Read, keyCurrentUser);
+ se = ep.ToXml ();
+ AssertEquals ("AddPathList-ToXml-Create", keyLocalMachineSubset, se.Attribute ("Create"));
+ AssertEquals ("AddPathList-ToXml-Read", keyLocalMachine + ";" + keyCurrentUser, se.Attribute ("Read"));
+ AssertEquals ("AddPathList-ToXml-Write", keyLocalMachine, se.Attribute ("Write"));
+ }
+
[Test]
[ExpectedException (typeof (ArgumentException))]
public void GetPathListAllAccess ()
AssertEquals ("EP1 U EP2 U EP3 == EP1+2+3", ep4.ToXml ().ToString (), ep5.ToXml ().ToString ());
}
+ [Test]
+ public void Union_Subset ()
+ {
+ RegistryPermission ep1 = new RegistryPermission (RegistryPermissionAccess.AllAccess, keyLocalMachine);
+ RegistryPermission ep2 = new RegistryPermission (RegistryPermissionAccess.Create, keyLocalMachineSubset);
+ RegistryPermission ep3 = (RegistryPermission)ep1.Union (ep2);
+ AssertEquals ("Create", keyLocalMachineSubset, ep3.GetPathList (RegistryPermissionAccess.Create));
+ AssertEquals ("Read", keyLocalMachine, ep3.GetPathList (RegistryPermissionAccess.Read));
+ AssertEquals ("Write", keyLocalMachine, ep3.GetPathList (RegistryPermissionAccess.Write));
+ }
+
[Test]
[ExpectedException (typeof (ArgumentException))]
public void UnionWithBadPermission ()
AssertEquals ("Intersect-AllAccess-Write", keyLocalMachine, ep3.GetPathList (RegistryPermissionAccess.Write));
}
+ [Test]
+ public void Intersect_Subset ()
+ {
+ RegistryPermission ep1 = new RegistryPermission (RegistryPermissionAccess.AllAccess, keyLocalMachine);
+ RegistryPermission ep2 = new RegistryPermission (RegistryPermissionAccess.Create, keyLocalMachineSubset);
+ RegistryPermission ep3 = (RegistryPermission)ep1.Intersect (ep2);
+ AssertEquals ("Create", keyLocalMachine, ep3.GetPathList (RegistryPermissionAccess.Create));
+ AssertNull ("Read", ep3.GetPathList (RegistryPermissionAccess.Read));
+ AssertNull ("Write", ep3.GetPathList (RegistryPermissionAccess.Write));
+ }
+
[Test]
[ExpectedException (typeof (ArgumentException))]
public void IntersectWithBadPermission ()