Example #1
0
        public void LocateInProgramFiles_SendValidProgramDeepSearch_SubFolderSpecified_ReturnsProgramPath()
        {
            var findFile = (Platform.IsMono ? "bash" : "msinfo32.exe");

            // this will work on Mono because it ignores the subFoldersToSearch parameter
            Assert.IsNotNull(FileLocationUtilities.LocateInProgramFiles(findFile, true, "Common Files"));
        }
Example #2
0
        public void LocateInProgramFiles_DeepSearch_FindsFileInSubdir()
        {
            // This simulates finding RAMP which is installed as /opt/RAMP/ramp. We can't put
            // anything in /opt for testing, so we add our tmp directory to the path.

            // Setup
            var simulatedOptDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
            var pathVariable    = Environment.GetEnvironmentVariable("PATH");

            try
            {
                Directory.CreateDirectory(simulatedOptDir);
                Directory.CreateDirectory(Path.Combine(simulatedOptDir, "RAMP"));
                var file = Path.Combine(simulatedOptDir, "RAMP", "ramp");
                File.WriteAllText(file, "Simulated RAMP starter");
                Environment.SetEnvironmentVariable("PATH", $"{simulatedOptDir}{Path.PathSeparator}{pathVariable}");

                // Exercise/Verify
                Assert.That(FileLocationUtilities.LocateInProgramFiles("ramp", true),
                            Is.EqualTo(file));
            }
            finally
            {
                try
                {
                    Environment.SetEnvironmentVariable("PATH", pathVariable);
                    Directory.Delete(simulatedOptDir, true);
                }
                catch
                {
                    // just ignore
                }
            }
        }
Example #3
0
        /// <summary>Get the path and file name of the Arbil executable file</summary>
        public static string GetArbilExeFileLocation()
        {
            var exeFile = ArchivingDlgViewModel.IsMono
                                ? FindArbilJarFileMono()
                                : FileLocationUtilities.LocateInProgramFiles("arbil-stable.exe", true, "arbil");

            // make sure the file exists
            return(!File.Exists(exeFile)
                                ? null
                                : new FileInfo(exeFile).FullName);
        }
Example #4
0
        /// <summary>Get the path and file name of the RAMP executable file</summary>
        public static string GetRampExeFileLocation()
        {
            string       exeFile;
            const string rampFileExtension = ".ramp";

            if (ArchivingDlgViewModel.IsMono)
            {
                exeFile = FileLocationUtilities.LocateInProgramFiles("ramp", true);
            }
            else
            {
                exeFile = FileLocator.GetFromRegistryProgramThatOpensFileType(rampFileExtension) ??
                          FileLocationUtilities.LocateInProgramFiles("ramp.exe", true, "ramp");
            }

            // make sure the file exists
            return(!File.Exists(exeFile) ? null : new FileInfo(exeFile).FullName);
        }
Example #5
0
        public void LocateInProgramFiles_SendInValidSubFolder_DoesNotThrow()
        {
            var findFile = (Platform.IsMono ? "bash" : "msinfo32.exe");

            Assert.DoesNotThrow(() => FileLocationUtilities.LocateInProgramFiles(findFile, true, "!~@blah"));
        }
Example #6
0
        public void LocateInProgramFiles_SendValidProgramDeepSearch_ReturnsProgramPath()
        {
            var findFile = (Platform.IsMono ? "bash" : "msinfo32.exe");

            Assert.IsNotNull(FileLocationUtilities.LocateInProgramFiles(findFile, true));
        }
Example #7
0
 public void LocateInProgramFiles_SendValidProgramNoDeepSearch_ReturnsNull()
 {
     Assert.IsNull(FileLocationUtilities.LocateInProgramFiles("msinfo32.exe", false));
 }