Beispiel #1
0
        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 "));
        }
Beispiel #2
0
        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());
            }
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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));
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
            }
        }
Beispiel #11
0
        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 ")));
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
 public VersionTuple GetVersionsFromExtractedAppFile(string appName, string testSubfolderName, out FileInfo exe)
 {
     exe = TestAppProvider.ExtractApp(appName, testSubfolderName, this.Log);
     return(this.GetVersionsFromFile(exe));
 }
Beispiel #14
0
        public async Task <VersionTuple> GetVersionsFromApp(string appName, string testSubfolderName)
        {
            FileInfo exe = TestAppProvider.ExtractApp(appName, testSubfolderName, this.Log);

            return(await this.GetVersionsFromApp(exe).ConfigureAwait(false));
        }
Beispiel #15
0
        public VersionTuple GetVersionsFromApp(string appName, string testSubfolderName)
        {
            FileInfo exe = TestAppProvider.ExtractApp(appName, testSubfolderName, x => IntegrationTestBase.Log(x));

            return(this.GetVersionsFromApp(exe));
        }
Beispiel #16
0
        public Guid GetCodeFromMsi(string msiName)
        {
            var msi = TestAppProvider.GetFile(msiName);

            return(this.GetCodeFromMsi(msi));
        }