Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        public async Task TestEmptyGetRelease()
        {
            var account = GitHubTestAccount.Get();
            var checker = new ReleaseChecker(account.Name, account.Repository);
            var latest  = await checker.GetReleaseAsync();

            Assert.IsNotNull(latest);
        }
Esempio n. 6
0
        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");
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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());
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 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);
     }
 }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        public void TestNullUpdateDetectionCallback()
        {
            var account = GitHubTestAccount.Get();
            var checker = new ReleaseChecker(account.Name, account.Repository);

            Assert.DoesNotThrow(() =>
            {
                checker.MonitorForUpdates(
                    "v1",
                    null,
                    Timeout.Infinite
                    );
            });
        }
Esempio n. 14
0
 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;
     }
 }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
 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;
 }
Esempio n. 17
0
 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 { }
     });
 }
Esempio n. 18
0
        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");
        }
Esempio n. 19
0
        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);
        }
Esempio n. 20
0
        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)!
        }
Esempio n. 21
0
        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);
 }
Esempio n. 23
0
 public JoinTestForm()
 {
     InitializeComponent();
     updater = new ReleaseChecker("testing-reloaded-client");
 }