示例#1
0
        private (bool, string) PerformAutoUpdateDownload(IUpdateDescription update, string targetFolder, IProgressMonitor progressMonitor)
        {
            var fileDownloader = new GitHubFileDownloader(update.DirectDownloadUrl, targetFolder);

            fileDownloader.FileName = $"gobchat-{update.Version.Major}.{update.Version.Minor}.{update.Version.Patch}-{update.Version.PreRelease}.zip";

            try
            {
                var downloadResult = fileDownloader.Download(progressMonitor);
                switch (downloadResult)
                {
                case GitHubFileDownloader.Result.Canceled:
                    return(false, null);
                }
            }
            catch (DownloadFailedException ex)
            {
                logger.Error(ex);

                System.Windows.Forms.MessageBox.Show(
                    StringFormat.Format(Resources.Module_Updater_Dialog_DownloadFailed_Text, ex.ToString()),
                    Resources.Module_Updater_Dialog_DownloadFailed_Title,
                    System.Windows.Forms.MessageBoxButtons.OK,
                    System.Windows.Forms.MessageBoxIcon.Error
                    );

                return(false, null);
            }

            return(true, fileDownloader.FilePath);
        }
示例#2
0
        public void Test_ThrowsExceptionIfTheUrlProvidedIsNotRaw()
        {
            var path = Path.Combine(Environment.CurrentDirectory, "TestGitDownload", "Foo");

            if (File.Exists(path))
            {
                File.Delete(path);
            }

            var downloader = new GitHubFileDownloader(NOT_RAW_GIT_URL);

            Assert.Throws <Exception>(() => downloader.Download(path));
        }
示例#3
0
        public void Test_WithAPITokenProvided()
        {
            var path = Path.Combine(Environment.CurrentDirectory, "TestGitDownload", "From_Github");

            if (File.Exists(path))
            {
                File.Delete(path);
            }

            var downloader = new GitHubFileDownloader(RAW_GIT_URL, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

            downloader.Download(path);

            Assert.True(File.Exists(path));
            Assert.True(File.ReadAllText(path).Length > 0);
        }
示例#4
0
        public void Test_DeletesTheEmptyFileIfAnyExceptionIsThrown()
        {
            var path = Path.Combine(Environment.CurrentDirectory, "TestGitDownload", "Bar");

            if (File.Exists(path))
            {
                File.Delete(path);
            }

            var downloader = new GitHubFileDownloader(NOT_RAW_GIT_URL);

            try
            {
                downloader.Download(path);
            }
            catch (Exception)
            {}
            Assert.False(File.Exists(path));
        }