public SettingsForm(ReleaseChecker releaseChecker, ProxyManager proxyManager, SettingsManager settingsManager) { InitializeComponent(); _releaseChecker = releaseChecker; _proxyManager = proxyManager; _settingsManager = settingsManager; checkBoxUnsetProxyAutomatically.Checked = Settings.Default.UnsetProxyAutomatically; radioButtonFakePac.Checked = !Settings.Default.UnsetOrFakePac; radioButtonUnsetPac.Checked = Settings.Default.UnsetOrFakePac; checkBoxNotifyWhenProxySet.Checked = Settings.Default.NotifyOfProxySet; checkBoxCheckForNewReleaseWeekly.Checked = Settings.Default.CheckForNewReleaseWeekly; checkBoxLaunchAtWindowsStartup.Checked = _settingsManager.GetLaunchAtWindowsStartupState(); checkBoxUnsetProxyAutomatically.CheckedChanged += CheckBoxUnsetProxyAutomatically_CheckedChanged; radioButtonUnsetPac.CheckedChanged += RadioButtonUnsetPacOnCheckedChanged; checkBoxNotifyWhenProxySet.CheckedChanged += CheckBoxNotifyWhenProxySet_CheckedChanged; checkBoxCheckForNewReleaseWeekly.CheckedChanged += CheckBoxCheckForNewReleaseWeekly_CheckedChanged; checkBoxLaunchAtWindowsStartup.CheckedChanged += CheckBoxLaunchAtWindowsStartup_CheckedChanged; buttonDelete.Enabled = false; InitializeIpWhitelist(); InitializeManualProxy(); }
public ProxyUnsetterApplicationContext() { _proxyManager = new ProxyManager { ManuallySetProxyServer = Settings.Default.ManuallySetProxy }; _settingsManager = new SettingsManager(_proxyManager); InitTrayMenu(); _releaseChecker = new ReleaseChecker(); if (Settings.Default.CheckForNewReleaseWeekly) { _releaseChecker.Start(); _releaseChecker.CheckNowSilent(); } var checkTimer = new Timer { Interval = 5000 }; checkTimer.Tick += (sender, args) => CheckProxy(); checkTimer.Start(); _proxyManager.ManuallySetProxyServer = Settings.Default.ManuallySetProxy; System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged += (sender, args) => CheckProxy(true); }
public void TestUpdateDetectionProperties() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); var lastChecked = checker.LastChecked; var originalUpdateUrl = checker.UpdateUrl; var originalUpdate = checker.Update; Assert.DoesNotThrow(() => { checker.MonitorForUpdates( "v1", null, Timeout.Infinite ); }); while (lastChecked == checker.LastChecked) { Thread.Sleep(500); } Assert.IsTrue(checker.UpdateAvailable); Assert.IsNotEmpty(checker.UpdateUrl); Assert.AreNotEqual(checker.UpdateUrl, originalUpdateUrl); Assert.IsNotNull(checker.Update); Assert.AreNotEqual(checker.Update, originalUpdate); }
public void TestCheckerConstruction() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); Assert.AreEqual(checker.AccountName, account.Name); Assert.AreEqual(checker.Repository, account.Repository); }
public async Task TestEmptyGetRelease() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); var latest = await checker.GetReleaseAsync(); Assert.IsNotNull(latest); }
public void ValidateApiUrlSpecificRelease() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); var url = checker.GetReleaseApiUrl(account.Release); Assert.AreEqual(url, "https://api.github.com/repos/nachmore/AmazonChimeHelper/releases/23205966"); }
private async void Window_Loaded(object sender, RoutedEventArgs e) { // set default values for the controls if (ComPortViewModel.ComPorts.Count > 0) { SelectedComPort = ComPortViewModel.ComPorts.LastOrDefault(); } await ReleaseChecker.RefreshReleaseInfo().ConfigureAwait(false); }
public void TestNullAccount() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); Assert.IsNull(checker.AccountName); Assert.IsNotNull(checker.Repository); Assert.ThrowsAsync <System.Net.Http.HttpRequestException>(() => checker.GetReleaseAsync()); }
public void UseAsyncDownloader() { ReleaseChecker releaseChecker = new ReleaseChecker(); releaseChecker.UseAsyncDownloader <AsyncDownloader>(); Assert.IsInstanceOf <AsyncDownloader>(releaseChecker.AsyncDownloader); IAsyncDownloader downloader = Substitute.For <IAsyncDownloader>(); releaseChecker.UseAsyncDownloader(downloader); Assert.AreSame(downloader, releaseChecker.AsyncDownloader); }
private async void LblDownloadUpdateLink_Click(object sender, MouseButtonEventArgs e) { e.Handled = true; if (HaveUpdate && UpdateDownloadUri != null) { Process.Start(UpdateDownloadUri.ToString()); } else { await ReleaseChecker.RefreshReleaseInfo().ConfigureAwait(false); } }
public async Task TestSpecificGetRelease() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); var release = await checker.GetReleaseAsync(account.Release); Assert.IsNotNull(release); Assert.IsFalse(release.PreRelease); Assert.AreEqual(release.Name, "Chime Helper 1.2"); Assert.AreEqual(release.HtmlUrl, "https://github.com/nachmore/AmazonChimeHelper/releases/tag/v1.2"); Assert.AreEqual(release.Assets.Length, 1); Assert.IsNotEmpty(release.ReleaseNotes); }
public void CheckEmptyArray() { string returnJson = "[]"; ReleaseChecker releaseChecker = new ReleaseChecker(); IAsyncDownloader downloader = Substitute.For <IAsyncDownloader>(); downloader.DownloadAsync(null, 0).ReturnsForAnyArgs(Task.FromResult(returnJson)); releaseChecker.UseAsyncDownloader(downloader); Release result = releaseChecker.Check().Result; Assert.AreEqual(null, result); }
public void TestNullUpdateDetectionCallback() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); Assert.DoesNotThrow(() => { checker.MonitorForUpdates( "v1", null, Timeout.Infinite ); }); }
private void InitReleaseCheck() { // Look for a new release if the last check is at least 1 hour ago if (this.Configuration.LastVersionCheck + TimeSpan.FromHours(1) <= DateTime.Now) { ReleaseChecker releaseChecker = new ReleaseChecker(); Release newRelease = releaseChecker.Check().Result; if (newRelease != null) { this.Configuration.LastVersionRelease = newRelease.Version; this.Configuration.LastVersionReleaseUrl = newRelease.Url; } this.Configuration.LastVersionCheck = DateTime.Now; } }
public void CheckInvalidVersion() { string versionString = "v1.3.5.2150000000"; string url = "http://url.to/some?download#location"; string returnJson = string.Format(@"[ {{ ""html_url"": ""{0}"", ""tag_name"": ""{1}"" }} ]", url, versionString); ReleaseChecker releaseChecker = new ReleaseChecker(); IAsyncDownloader downloader = Substitute.For <IAsyncDownloader>(); downloader.DownloadAsync(null, 0).ReturnsForAnyArgs(Task.FromResult(returnJson)); releaseChecker.UseAsyncDownloader(downloader); Release result = releaseChecker.Check().Result; Assert.AreEqual(null, result); }
private void VersionChecker_DoWork(object sender, DoWorkEventArgs e) { ReleaseChecker.GetRelease(); string[] latestTemp = ReleaseChecker.Recommanded.tag_name.Split('.'); for (int i = 0; i < 2; i++) { Recommanded[i] = int.Parse(latestTemp[i]); } RecommandedURL = ReleaseChecker.Recommanded.assets[0].browser_download_url; latestTemp = ReleaseChecker.Latest.tag_name.Split('.'); for (int i = 0; i < 2; i++) { Latest[i] = int.Parse(latestTemp[i]); } LatestURL = ReleaseChecker.Latest.assets[0].browser_download_url; }
public BoardHub(ReleaseChecker releaseChecker, ILogger <BoardHub> logger, ReleaseInstaller installer, SettingsUpdater settingsUpdater) { this.ReleaseChecker = releaseChecker; this.Installer = installer; this.SettingsUpdater = settingsUpdater; this.Log = logger; Task.Run(async() => { this.NewerRelease = await this.ReleaseChecker.GetLatestReleaseIfNewerAsync(Program.Version, Program.Repo, Program.Owner, nameof(HalmaEditor)); this.ReleaseCheckDone = true; try { ReleaseCheckFinished?.Invoke(this, EventArgs.Empty); } catch { } }); }
public async Task TestMultipleAssets() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); var release = await checker.GetReleaseAsync(account.Release); Assert.IsNotNull(release); Assert.IsNotNull(release.Assets); Assert.AreEqual(release.Assets.Length, 4); var asset = release.Assets[2]; Assert.AreEqual(asset.Name, "robo3t-1.4.0-windows-x86_64-12e54cc.exe"); Assert.AreEqual(asset.Size, 19019000); Assert.AreEqual(asset.DownloadUrl, "https://github.com/Studio3T/robomongo/releases/download/v1.4.0/robo3t-1.4.0-windows-x86_64-12e54cc.exe"); }
public void TestInvalidUpdateDetectionInterval() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); GitHubRelease latestRelease = null; Assert.Throws <ArgumentException>(() => { checker.MonitorForUpdates( "v1", (release) => { latestRelease = release; }, 0 ); }); Assert.IsNull(latestRelease); }
public void TestUpdateDetectionExceptions() { var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); var thrown = false; checker.UnhandledException += (source, e) => { thrown = true; Assert.IsInstanceOf <System.Net.Http.HttpRequestException>(e); }; checker.MonitorForUpdates("bing bong", null, Timeout.Infinite); while (!thrown) { Thread.Sleep(500); } // if we fall through it means thet test passed (since it didn't timeout)! }
public void TestUpdateDetection() { string versionToCheckFor = "v1"; var account = GitHubTestAccount.Get(); var checker = new ReleaseChecker(account.Name, account.Repository); GitHubRelease latestRelease = null; checker.MonitorForUpdates( versionToCheckFor, (release) => { latestRelease = release; }, Timeout.Infinite ); while (latestRelease == null) { Thread.Sleep(500); } Assert.IsNotNull(latestRelease); Assert.AreNotEqual(latestRelease.Version, versionToCheckFor); }
private void StartCheckForUpdates() { UpdateState = new ReleaseChecker("nachmore", "ChimeHelper"); UpdateState.UnhandledException += UpdateState_UnhandledException; UpdateState.MonitorForUpdates(VersionString); }
public JoinTestForm() { InitializeComponent(); updater = new ReleaseChecker("testing-reloaded-client"); }