public void InitFromUri_FullTypicalLangDepot_PasswordCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.AreEqual("pass", m.Password); }
public void InitFromUri_FullPrivateLangDepot_SelectedServerLabel() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-private.languagedepot.org/tpi"); Assert.AreEqual("LanguageDepot.org [private]".ToLower(), m.SelectedServerLabel.ToLower()); }
public void InitFromUri_FullTypicalLangDepot_SelectedServerLabel() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.AreEqual("languagedepot.org [safe mode]", m.SelectedServerLabel.ToLower()); }
public void InitFromUri_LanguageDepot_ConvertedToLanguageForge(string subdomain, bool isResumable) { try { if (subdomain.Equals("hg-private")) { // Setting IsPrivateServer is necessary to prevent hg-private.languageforge.org being marked as custom. // If IsPrivateServer is set incorrectly (either way), the URL will be imported and scrubbed correctly, // but marked as custom (tested in other tests) ServerSettingsModel.IsPrivateServer = true; } var expectedNewHost = $"{subdomain}.languageforge.org"; var expectedBandwidth = isResumable ? ServerSettingsModel.BandwidthEnum.Low : ServerSettingsModel.BandwidthEnum.High; var m = new ServerSettingsModel(); // SUT // ReSharper disable once StringLiteralTypo - the old server used to be called Language Depot m.InitFromUri($"http://*****:*****@{subdomain}.languagedepot.org/mcx"); Assert.False(m.IsCustomUrl); Assert.AreEqual(expectedNewHost, m.Host); Assert.AreEqual("joe", m.Username); Assert.AreEqual("cool", m.Password); Assert.AreEqual(expectedBandwidth, m.Bandwidth.Value); Assert.AreEqual("mcx", m.ProjectId); Assert.AreEqual($"https://{expectedNewHost}/mcx", m.URL); } finally { ServerSettingsModel.IsPrivateServer = false; } }
public void InitFromUri_FullTypicalLangDepot_CustomUrlFalse() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.IsFalse(m.CustomUrlSelected); }
public void InitFromUri_UnknownHttpGiven_CustomUrlIsTrue() { var m = new ServerSettingsModel(); m.InitFromUri("https://somewhereelse.net/xyz"); Assert.IsTrue(m.IsCustomUrl); }
public void InitFromUri_HasFolderDesignator_IdIsCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("https://*****:*****@hg-public.languageforge.org/tpi?localFolder=foo"); Assert.AreEqual("tpi", m.ProjectId); }
public void InitFromUri_LANPathGiven_CustomUrlIsTrue() { var m = new ServerSettingsModel(); m.InitFromUri("\\mybox\tpi"); Assert.IsTrue(m.IsCustomUrl); }
public void InitFromUri_FullTypicalLangForge_AccountNameCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("https://*****:*****@hg-public.languageforge.org/tpi"); Assert.AreEqual("joe", m.Username); }
public void InitFromUri_FullTypicalLangForge_ProjectIdCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("https://*****:*****@hg-public.languageforge.org/tpi"); Assert.AreEqual("tpi", m.ProjectId); }
public void InitFromUri_LANPathGiven_SelectedServerLabelIsCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("\\mybox\tpi"); Assert.IsTrue(m.SelectedServerLabel.ToLower().Contains("custom")); }
public void InitFromUri_FullTypicalLangDepot_SelectedServerPathCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.AreEqual("hg-public.languagedepot.org", m.SelectedServerPath); }
public void InitFromUri_ResumableLangForge_DomainAndBandwidthCorrectAndNotCustom() { var m = new ServerSettingsModel(); m.InitFromUri("https://resumable.languageforge.org/tpi"); Assert.AreEqual("resumable.languageforge.org", m.Host); Assert.AreEqual(ServerSettingsModel.BandwidthEnum.Low, m.Bandwidth.Value); Assert.False(m.IsCustomUrl); }
public void InitFromUri_FullTypicalLangForge_ExistingProjectIdDisplayedOnLoad( [Values(true, false)] bool hasProjId) { const string proj = "tpi"; var m = new ServerSettingsModel(); m.InitFromUri($"https://*****:*****@hg-public.languageforge.org/{(hasProjId ? proj : string.Empty)}"); Assert.AreEqual(hasProjId, m.HasLoggedIn); }
public void InitFromUri_FullTypicalLangForge_DomainAndBandwidthCorrectAndNotCustom() { var m = new ServerSettingsModel(); m.InitFromUri("https://*****:*****@hg-public.languageforge.org/tpi"); Assert.AreEqual("hg-public.languageforge.org", m.Host); Assert.AreEqual(ServerSettingsModel.BandwidthEnum.High, m.Bandwidth.Value); Assert.False(m.IsCustomUrl); }
private static void LaunchCustomUrl(string url) { var model = new ServerSettingsModel(); model.InitFromUri(url); using (var dlg = new ServerSettingsDialog(model)) { dlg.ShowDialog(); } }
public void InitFromUri_UsernameAndPass_OverwritesSettings() { Settings.Default.LanguageForgeUser = "******"; Settings.Default.LanguageForgePass = ServerSettingsModel.EncryptPassword("settings"); var m = new ServerSettingsModel(); m.InitFromUri("https://*****:*****@hg-public.languageforge.org/tps"); Assert.AreEqual("jan", m.Username); Assert.AreEqual("pass", m.Password); Assert.AreEqual("tps", m.ProjectId); }
private void LaunchCustomUrl(string url) { var model = new ServerSettingsModel(); model.InitFromUri(url); using (var dlg = new ServerSettingsDialog(model)) { if (DialogResult.OK != dlg.ShowDialog()) { return; } } }
public void InitFromUri_NoUsernameOrPass_UsesSettings() { const string user = "******"; const string pass = "******"; Settings.Default.LanguageForgeUser = user; Settings.Default.LanguageForgePass = ServerSettingsModel.EncryptPassword(pass); var m = new ServerSettingsModel(); m.InitFromUri("https://hg.languageforge.org/tpi"); Assert.AreEqual(user, m.Username); Assert.AreEqual(pass, m.Password); Assert.AreEqual("tpi", m.ProjectId); }
public void InitFromUri_CredentialsOriginallySetFromModelWithSpecialCharacters_AbleToRoundTripCredentialsBackFromURIOK() { var model = new ServerSettingsModel(); const string accountName = "*****@*****.**"; const string password = "******"; const string projectId = "projectId"; model.AccountName = accountName; model.Password = password; model.ProjectId = projectId; var urlWithEncodedChars = model.URL; var newModel = new ServerSettingsModel(); newModel.InitFromUri(urlWithEncodedChars); Assert.AreEqual(accountName, newModel.AccountName); Assert.AreEqual(password, newModel.Password); Assert.AreEqual(projectId, newModel.ProjectId); }
public void InitFromUri_CredentialsOriginallySetFromModelWithSpecialCharacters_AbleToRoundTripCredentialsBackFromURIOK() { var model = new ServerSettingsModel(); const string accountName = "*****@*****.**"; const string password = "******"; const string projectId = "projectId"; model.AccountName = accountName; model.Password = password; model.ProjectId = projectId; var urlWithEncodedChars = model.URL; var newModel = new ServerSettingsModel(); newModel.InitFromUri(urlWithEncodedChars); Assert.AreEqual(accountName, newModel.AccountName); Assert.AreEqual(password, newModel.Password); Assert.AreEqual(projectId, newModel.ProjectId); }
public void InitFromUri_UnknownHttpGiven_InitializesEverything() { const string user = "******"; const string pass = "******"; const string proj = "ngl"; const string host = "chorus.elsewhere.net"; const string hostAndProj = host + "/" + proj; // URL is intentionally insecure: just in case some self-hosting user hasn't implemented security const string url = "http://" + user + ":" + pass + "@" + hostAndProj; const string urlSansCredentials = "http://" + hostAndProj; var m = new ServerSettingsModel(); // SUT m.InitFromUri(url); Assert.IsTrue(m.IsCustomUrl); Assert.AreEqual(host, m.Host); Assert.AreEqual(user, m.Username); Assert.AreEqual(pass, m.Password); Assert.AreEqual(ServerSettingsModel.BandwidthEnum.High, m.Bandwidth.Value, "Custom URL's aren't known to be resumable"); Assert.AreEqual(proj, m.ProjectId); Assert.AreEqual(urlSansCredentials, m.URL); }
public void InitFromUri_FullTypicalLangDepot_PasswordCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.AreEqual("pass", m.Password); }
public void InitFromUri_FullTypicalLangDepot_SelectedServerLabel() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.AreEqual("languagedepot.org [safe mode]", m.SelectedServerLabel.ToLower()); }
public void InitFromUri_FullTypicalLangDepot_SelectedServerPathCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.AreEqual("hg-public.languagedepot.org", m.SelectedServerPath); }
public void InitFromUri_HasFolderDesignator_IdIsCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi?localFolder=foo"); Assert.AreEqual("tpi", m.ProjectId); }
public void InitFromUri_FullTypicalLangDepot_CustomUrlFalse() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.IsFalse(m.CustomUrlSelected); }
public void InitFromUri_LANPathGiven_CustomUrlIsTrue() { var m = new ServerSettingsModel(); m.InitFromUri("\\mybox\tpi"); Assert.IsTrue(m.CustomUrlSelected); }
public void InitFromUri_LANPathGiven_SelectedServerLabelIsCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("\\mybox\tpi"); Assert.IsTrue(m.SelectedServerLabel.ToLower().Contains("custom")); }
public void InitFromUri_UnknownHttpGiven_CustomUrlIsTrue() { var m = new ServerSettingsModel(); m.InitFromUri("http://somewhereelse.net/xyz"); Assert.IsTrue(m.CustomUrlSelected); }
public void InitFromUri_FullPrivateLangDepot_SelectedServerLabel() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-private.languagedepot.org/tpi"); Assert.AreEqual("LanguageDepot.org [private]".ToLower(), m.SelectedServerLabel.ToLower()); }
public void InitFromUri_FullTypicalLangDepot_AccountNameCorrect() { var m = new ServerSettingsModel(); m.InitFromUri("http://*****:*****@hg-public.languagedepot.org/tpi"); Assert.AreEqual("joe",m.AccountName); }