Exemple #1
0
        public async Task RunChmodOnExifToolUnixExe_Chmod644_UnixOnly()
        {
            if (_appSettings.IsWindows)
            {
                Console.WriteLine("This test is for unix only");
                return;
            }

            var fakeIHttpProvider = new FakeIHttpProvider(new Dictionary <string, HttpContent>
            {
                { "https://exiftool.org/checksums.txt", new StringContent(ExampleCheckSum) },
                { "https://exiftool.org/exiftool-11.99.zip", new ByteArrayContent(CreateAnExifToolWindows.Bytes) },
                { "https://exiftool.org/Image-ExifTool-11.99.tar.gz", new ByteArrayContent(CreateAnExifToolTarGz.Bytes) },
            });
            var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, _serviceScopeFactory, new FakeIWebLogger());

            await CreateTempFolderWithExifTool("temp");

            // make NOT executable 644
            await Command.Run("chmod", "644",
                              Path.Combine(_appSettings.TempFolder, "exiftool-unix", "exiftool")).Task;

            var exifToolDownload = new ExifToolDownload(httpClientHelper, _appSettings, new FakeIWebLogger());
            var result           = await exifToolDownload.RunChmodOnExifToolUnixExe();

            Assert.IsTrue(result);


            Directory.Delete(_appSettings.TempFolder, true);
        }
Exemple #2
0
        public async Task RunChmodOnExifToolUnixExe_TempFolderWithSpace_UnixOnly()
        {
            if (_appSettings.IsWindows)
            {
                Console.WriteLine("This test is for unix only");
                return;
            }

            var fakeIHttpProvider = new FakeIHttpProvider(new Dictionary <string, HttpContent>
            {
                { "https://exiftool.org/checksums.txt", new StringContent(ExampleCheckSum) },
                { "https://exiftool.org/exiftool-11.99.zip", new ByteArrayContent(CreateAnExifToolWindows.Bytes) },
                { "https://exiftool.org/Image-ExifTool-11.99.tar.gz", new ByteArrayContent(CreateAnExifToolTarGz.Bytes) },
            });
            var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, _serviceScopeFactory, new FakeIWebLogger());
            var appSettings      = await CreateTempFolderWithExifTool();

            Console.WriteLine(appSettings.TempFolder);
            var exifToolDownload = new ExifToolDownload(httpClientHelper, appSettings, new FakeIWebLogger());
            var result           = await exifToolDownload.RunChmodOnExifToolUnixExe();

            Assert.IsTrue(result);

            var lsLah = await Command.Run("ls", "-lah",
                                          Path.Combine(appSettings.TempFolder, "exiftool-unix", "exiftool")).Task;

            Console.WriteLine(lsLah.StandardOutput);

            Assert.IsTrue(lsLah.StandardOutput.StartsWith("-rwxr-xr-x"));
            Directory.Delete(appSettings.TempFolder, true);
        }
Exemple #3
0
        public void CheckSha1_Bad()
        {
            var fakeIStorage = new FakeIStorage(new List <string> {
                "/"
            },
                                                new List <string> {
                "/exiftool.exe"
            },
                                                new List <byte[]> {
                CreateAnExifToolTarGz.Bytes
            });

            var result2 = new ExifToolDownload(null, _appSettings, new FakeIWebLogger(), fakeIStorage)
                          .CheckSha1("/exiftool.exe", new List <string> {
                "random_value"
            });

            Assert.IsFalse(result2);
        }
Exemple #4
0
        public void GetChecksumsFromTextFile_Good()
        {
            var fakeIHttpProvider = new FakeIHttpProvider(new Dictionary <string, HttpContent>());

            var example =
                "SHA1(Image-ExifTool-12.40.tar.gz)= 09f3bee6491251390028580eb8af990e79674ada\n" +
                "SHA1(exiftool-12.40.zip)= 9428bb167512a8eec5891d3b8d2341427688f2f8\n" +
                "SHA1(ExifTool-12.40.dmg)= e20ed19da096807774b68cf8c15e29f1903ca641\n" +
                "MD5 (Image-ExifTool-12.40.tar.gz) = 72b40d69cf518edebbf5b661465950e7\n" +
                "MD5 (exiftool-12.40.zip) = fc834fd43d79da19fcb6461fb791b275\n" +
                "MD5 (ExifTool-12.40.dmg) = b30e391a4b53564de60a72f4347cade4\n";

            var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, _serviceScopeFactory, new FakeIWebLogger());

            var exifToolDownload = new ExifToolDownload(httpClientHelper, new AppSettings(),
                                                        new FakeIWebLogger(), new FakeIStorage());
            var result = exifToolDownload.GetChecksumsFromTextFile(example);

            Assert.AreEqual(3, result.Length);
        }
Exemple #5
0
        public void GetWindowsZipFromChecksum()
        {
            var result = ExifToolDownload.GetWindowsZipFromChecksum(ExampleCheckSum);

            Assert.AreEqual("exiftool-11.99.zip", result);
        }
Exemple #6
0
        public void GetUnixTarGzFromChecksum()
        {
            var result = ExifToolDownload.GetUnixTarGzFromChecksum(ExampleCheckSum);

            Assert.AreEqual("Image-ExifTool-11.99.tar.gz", result);
        }