public void DenyExcesiveDiskUsage() { // Arrange Prison.Init(); Prison prison = new Prison(); prison.Tag = "uhtst"; PrisonRules prisonRules = new PrisonRules(); prisonRules.CellType = CellType.Disk; prisonRules.DiskQuotaBytes = 50 * 1024 * 1024; prisonRules.PrisonHomePath = @"C:\Workspace\dea_security\PrisonHome"; prison.Lockdown(prisonRules); // Act string exe = Utilities.CreateExeForPrison( @" for (int size = 1; size < 100; size++) {{ byte[] content = new byte[1024 * 1024]; File.AppendAllText(Guid.NewGuid().ToString(""N""), ASCIIEncoding.ASCII.GetString(content)); }}", prison); Process process = prison.Execute(exe); process.WaitForExit(); // Assert Assert.AreNotEqual(0, process.ExitCode); }
public void AllowAccessInHomeDir() { // Arrange Prison.Init(); Prison prison = new Prison(); prison.Tag = "uhtst"; PrisonRules prisonRules = new PrisonRules(); prisonRules.CellType = CellType.Filesystem; prisonRules.PrisonHomePath = @"C:\Workspace\dea_security\PrisonHome"; prison.Lockdown(prisonRules); // Act string exe = Utilities.CreateExeForPrison( @" File.WriteAllText(Guid.NewGuid().ToString(""N""), Guid.NewGuid().ToString()); ", prison); Process process = prison.Execute(exe); process.WaitForExit(); // Assert Assert.AreEqual(0, process.ExitCode); }
public void PrisonInitFilesystemTest() { using (ShimsContext.Create()) { PrisonTestsHelper.InitFilesystemRuleFakes(); Prison prison = new Prison(); prison.Tag = "uhtst"; Prison.Init(); } }
public void InstantiateRobbers() { var policeman = FindObjectOfType <Level>().character.gameObject; policeman.SetActive(true); policeman.GetComponent <CharacterMovement>().Stop(); policeman.GetComponent <CharacterAnimations>().Idle(); var carchingRobbers = FindObjectOfType <CatchingRobbers>(); carchingRobbers.robbers = new List <GameObject>(); var i = 0; prisonBuilding.ClearRobberList(); foreach (GameObject o in carchingRobbers.robbersPrefab) { foreach (CatchingRobbers.ColorType color in carchingRobbers.catchedRobbers) { Debug.Log(color.ToString() + " | " + o.name); if (color.ToString() == o.name) { var robber = Instantiate(o, new Vector3(1.5f + i * 1.7f, -3f, 0), Quaternion.identity); i++; carchingRobbers.robbers.Add(robber); robber.AddComponent <MovableObject>(); prisonBuilding.AddRobber(robber.AddComponent <RobberWindowInteraction>().InitColor(color.ToString())); robber.gameObject.AddComponent <Rigidbody2D>().bodyType = RigidbodyType2D.Kinematic; var settings = robber.gameObject.AddComponent <PartSettings>(); settings.destionationObjectRangeInstall = 0.7f; settings.isColorMatching = true; } } } policeman.transform.position = new Vector3(6, -2.7f, 0); carchingRobbers.catchedRobbers.Clear(); carchingRobbers.car.LeaveCarAll(); carchingRobbers.car.ClearStars(); prisonBuilding.Init(); }
public static void PrisonInit(TestContext context) { Prison.Init(); }
public void DisallowAccessEverywhereElse() { // Arrange Prison.Init(); Prison prison = new Prison(); prison.Tag = "uhtst"; PrisonRules prisonRules = new PrisonRules(); prisonRules.CellType = CellType.Filesystem; prisonRules.PrisonHomePath = @"C:\Workspace\dea_security\PrisonHome"; prison.Lockdown(prisonRules); // Act string exe = Utilities.CreateExeForPrison( @" return WalkDirectoryTree(new DirectoryInfo(@""c:\"")); } static int WalkDirectoryTree(System.IO.DirectoryInfo root) { System.IO.DirectoryInfo[] subDirs = null; // First, process all the files directly under this folder try { string adir = Guid.NewGuid().ToString(""N""); Directory.CreateDirectory(Path.Combine(root.FullName, adir)); Directory.Delete(Path.Combine(root.FullName, adir)); return 1; } catch { } try { string adir = Guid.NewGuid().ToString(""N""); File.WriteAllText(Path.Combine(root.FullName, adir), ""test""); File.Delete(Path.Combine(root.FullName, adir)); return 1; } catch { } try { subDirs = root.GetDirectories(); foreach (System.IO.DirectoryInfo dirInfo in subDirs) { // Resursive call for each subdirectory. return WalkDirectoryTree(dirInfo); } } catch { } return 0; } static int Dummy() { ", prison); Process process = prison.Execute(exe); process.WaitForExit(); // Assert Assert.AreEqual(0, process.ExitCode); }