private void UploadUpdater(string fileName, string internalName, string exeName) { this.GoToAdminHomePage(); WebDriverWait wait = new WebDriverWait(this.Driver, TimeSpan.FromSeconds(15)); this.Driver.FindElement(By.Id(Strings.Id.ToolkitManagementLink)).Click(); wait.Until(ExpectedConditions.ElementIsVisible(By.Id(Strings.Id.ToolkitManagementForm))); var updater = TestAppProvider.GetFile(fileName); this.Driver.FindElement(By.Id(Strings.Id.UpdaterInternalName)).Clear(); this.Driver.FindElement(By.Id(Strings.Id.UpdaterInternalName)).SendKeys(internalName); if (exeName != null) { this.Driver.FindElement(By.Id(Strings.Id.UpdaterExecutableName)).Clear(); this.Driver.FindElement(By.Id(Strings.Id.UpdaterExecutableName)).SendKeys(exeName); } this.Driver.FindElement(By.Id(Strings.Id.UpdaterPackageUploader)).SendKeys(updater.FullName); wait.Until(x => x.FindElements(By.Id(Strings.Id.UpdaterUploadInfoBox)).FirstOrDefault(e => e.Text.Contains(updater.Name))); this.Driver.FindElement(By.Id(Strings.Id.SubmitUpdaterUpload)).Click(); this.WaitForSuccessConfirmationWithText(wait, x => x.Contains("Uploaded package ")); }
public void _01_UploadToolkit() { try { WebDriverWait wait = new WebDriverWait(this.Driver, TimeSpan.FromSeconds(15)); this.Driver.FindElement(By.Id(Strings.Id.ToolkitManagementLink)).ClickWrapper(this.Driver); wait.Until(ExpectedConditions.ElementIsVisible(By.Id(Strings.Id.ToolkitManagementForm))); var file = TestAppProvider.GetFile("Telimena.Client.dll"); this.Driver.FindElement(By.Id(Strings.Id.ToolkitPackageUploader)).SendKeys(file.FullName); wait.Until(x => x.FindElements(By.Id(Strings.Id.ToolkitUploadInfoBox)) .FirstOrDefault(e => e.Text.Contains(file.Name))); this.Driver.FindElement(By.Id(Strings.Id.SubmitToolkitUpload)).ClickWrapper(this.Driver); this.WaitForSuccessConfirmationWithText(wait , x => StringAssert.Contains("Uploaded package ", x)); } catch (Exception ex) { this.HandleError(ex, SharedTestHelpers.GetMethodName()); } }
public VersionTuple GetVersionsFromMsiApp(string installerName, FileInfo expectedProgramPath, Guid productCode) { this.UninstallMsi(productCode, expectedProgramPath); this.InstallMsi(TestAppProvider.GetFile(installerName), expectedProgramPath); Thread.Sleep(500); return(this.GetVersionsFromFile(expectedProgramPath)); }
protected FileInfo LaunchTestsAppNewInstance(out Process process, Actions action, Guid telemetryKey, string appName, string testSubfolderName, ProgramInfo pi = null , string viewName = null, bool waitForExit = true) { var appFile = TestAppProvider.ExtractApp(appName, testSubfolderName, this.Log); process = this.LaunchTestsApp(appFile, action, telemetryKey, pi, waitForExit, viewName); return(appFile); }
protected Exception CleanupAndRethrow(Exception ex, [CallerMemberName] string caller = "") { string msg = $"Error when executing test: {caller}" + $"\r\nOutputs:\r\n{String.Join("\r\n", this.outputs)}" + $"\r\n\r\nErrors:\r\n{string.Join("\r\n", this.errors)}\r\n. See inner exception."; TestAppProvider.KillTestApps(); return(new InvalidOperationException(msg, ex)); }
protected void CleanupAndLog(Exception ex, [CallerMemberName] string caller = "") { string msg = $"Error when executing test: {caller}" + $"\r\n***Outputs:***\r\n{String.Join("\r\n", this.outputs)}\r\n\r\n***End of Outputs***" + $"\r\n\r\n***Errors:***\r\n{string.Join("\r\n", this.errors)}\r\n\r\n***End of Errors:***." + $"\r\n\r\n{ex}"; TestAppProvider.KillTestApps(); Log(msg); }
protected Exception CleanupAndRethrow(Exception ex, [CallerMemberName] string caller = "") { string msg = $"Error when executing test: {caller}" + $"\r\n***Outputs:***\r\n{String.Join("\r\n", this.outputs)}\r\n\r\n***End of Outputs***" + $"\r\n\r\n***Errors:***\r\n{string.Join("\r\n", this.errors)}\r\n\r\n***End of Errors:***." + $"\r\n\r\nSee inner exception."; TestAppProvider.KillTestApps(); return(new TelimenaTestException(msg, ex)); }
protected FileInfo LaunchTestsAppNewInstanceAndGetResult <T>(out Process process, out T result, Actions action, Guid telemetryKey, string appName, string testSubfolderName, ProgramInfo pi = null , string viewName = null, bool waitForExit = true) where T : class { var appFile = TestAppProvider.ExtractApp(appName, testSubfolderName, this.Log); this.outputs.Clear(); this.errors.Clear(); process = this.LaunchTestsApp(appFile, action, telemetryKey, pi, waitForExit, viewName); result = this.ParseOutput <T>(); this.outputs.Clear(); this.errors.Clear(); return(appFile); }
private void UploadUpdatePackage(string appName, string packageFileName, [CallerMemberName] string caller = null) { try { this.LoginAdminIfNeeded(); WebDriverWait wait = new WebDriverWait(this.Driver, ConfigHelper.GetTimeout()); this.ClickOnManageProgramMenu(appName); IWebElement form = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(Strings.Id.UploadProgramUpdateForm))); FileInfo file = TestAppProvider.GetFile(packageFileName); IWebElement input = form.FindElements(By.TagName("input")).FirstOrDefault(x => x.GetAttribute("type") == "file"); if (input == null) { Assert.Fail("Input box not found"); } input.SendKeys(file.FullName); wait.Until(x => form.FindElements(By.ClassName("info")).FirstOrDefault(e => e.Text.Contains(file.Name))); var notes = GetCurrentMethod().Name + DateTimeOffset.UtcNow.ToString("O"); this.SetReleaseNotesOnPackageUpload(form, notes); // ReSharper disable once PossibleNullReferenceException var btn = wait.Until(ExpectedConditions.ElementToBeClickable(form.FindElements(By.TagName("input")) .FirstOrDefault(x => x.GetAttribute("type") == "submit"))); btn.ClickWrapper(this.Driver); this.WaitForSuccessConfirmationWithText(wait, x => StringAssert.Contains("Uploaded package with ID", x)); this.Driver.Navigate().Refresh(); //wait for the reload and verify package uploaded and notes set OK this.VerifyReleaseNotesOnPkg(notes, packageFileName); } catch (Exception ex) { this.HandleError(ex, caller); } }
private void UploadProgramPackage(Guid appKey, string packageFileName, [CallerMemberName] string caller = null) { try { this.LoginAdminIfNeeded(); WebDriverWait wait = new WebDriverWait(this.Driver, TimeSpan.FromSeconds(15)); this.NavigateToManageProgramMenu(appKey); IWebElement form = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(Strings.Id.UploadFullProgramPackageForm))); FileInfo file = TestAppProvider.GetFile(packageFileName); IWebElement input = form.FindElements(By.TagName("input")).FirstOrDefault(x => x.GetAttribute("type") == "file"); if (input == null) { Assert.Fail("Input box not found"); } input.SendKeys(file.FullName); Log($"Uploading {file.FullName}"); wait.Until(x => form.FindElements(By.ClassName("info")).FirstOrDefault(e => e.Text.Contains(file.Name))); var btn = wait.Until(ExpectedConditions.ElementToBeClickable(form.FindElements(By.TagName("input")) .FirstOrDefault(x => x.GetAttribute("type") == "submit"))); btn.ClickWrapper(this.Driver); Log($"Submitted upload of {file.FullName}"); this.WaitForSuccessConfirmationWithText(wait, x => StringAssert.Contains("Uploaded package with ID", x)); this.Driver.Navigate().Refresh(); } catch (Exception ex) { this.HandleError(ex, caller); } }
public void _01_UploadToolkit() { this.GoToAdminHomePage(); WebDriverWait wait = new WebDriverWait(this.Driver, TimeSpan.FromSeconds(15)); this.Driver.FindElement(By.Id(Strings.Id.ToolkitManagementLink)).Click(); wait.Until(ExpectedConditions.ElementIsVisible(By.Id(Strings.Id.ToolkitManagementForm))); var file = TestAppProvider.GetFile("Telimena.Client.dll"); this.Driver.FindElement(By.Id(Strings.Id.ToolkitPackageUploader)).SendKeys(file.FullName); wait.Until(x => x.FindElements(By.Id(Strings.Id.ToolkitUploadInfoBox)).FirstOrDefault(e => e.Text.Contains(file.Name))); this.Driver.FindElement(By.Id(Strings.Id.SubmitToolkitUpload)).Click(); this.WaitForSuccessConfirmationWithText(wait, z => (z.Contains("Uploaded package ") && z.Contains(" with ID "))); }
protected Process LaunchPackageUpdaterTestsAppWithArgs(out FileInfo appFile, string appName, string testSubfolderName, bool waitForExit) { appFile = TestAppProvider.ExtractApp(appName, testSubfolderName, this.Log); Arguments args = new Arguments { ApiUrl = this.BaseUrl }; args.TelemetryKey = Apps.Keys.PackageUpdaterClient; Process process = ProcessCreator.Create(appFile, args, this.outputs, this.errors); this.Log($"Started process: {appFile.FullName}"); process.Start(); process.BeginOutputReadLine(); process.BeginErrorReadLine(); if (waitForExit) { process.WaitForExit(); this.Log($"Finished process: {appFile.FullName}"); } return(process); }
public VersionTuple GetVersionsFromExtractedAppFile(string appName, string testSubfolderName, out FileInfo exe) { exe = TestAppProvider.ExtractApp(appName, testSubfolderName, this.Log); return(this.GetVersionsFromFile(exe)); }
public async Task <VersionTuple> GetVersionsFromApp(string appName, string testSubfolderName) { FileInfo exe = TestAppProvider.ExtractApp(appName, testSubfolderName, this.Log); return(await this.GetVersionsFromApp(exe).ConfigureAwait(false)); }
public VersionTuple GetVersionsFromApp(string appName, string testSubfolderName) { FileInfo exe = TestAppProvider.ExtractApp(appName, testSubfolderName, x => IntegrationTestBase.Log(x)); return(this.GetVersionsFromApp(exe)); }
public Guid GetCodeFromMsi(string msiName) { var msi = TestAppProvider.GetFile(msiName); return(this.GetCodeFromMsi(msi)); }