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); }
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)); }
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); }
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)); }