示例#1
0
 // Constructor.
 public LetsKodeUiComponent
 (
     ITestBackgroundDataProvider <UserRole, TestEnvironment> testBackgroundDataProvider,
     IDecryptor decryptor = null
 )
     : base(testBackgroundDataProvider, decryptor)
 {
 }
示例#2
0
 // Constructor.
 public SignInFlowComponent
 (
     ITestBackgroundDataProvider <UserRole, TestEnvironment> testBackgroundDataProvider,
     IDecryptor decryptor
 )
     : base(testBackgroundDataProvider, decryptor)
 {
 }
示例#3
0
 public AuthBasicFeature()
 {
     this.dataProvider = new InsuranceOneTestBackgroundDataProvider();
     this.decryptor    = new DummyDecryptor();
     this.signInComponent
         = new SignInFlowComponent <UserRole, TestEnvironment>
           (
               this.dataProvider,
               this.decryptor
           );
 }
 public LetsKodeUiFeature()
 {
     this.dataProvider = new LetsKodeScreenDataProvider();
     this.letsKodeComponent
         = new LetsKodeUiComponent <UserRole, TestEnvironment> (dataProvider);
 }
        protected BusinessFunctionFlowComponentBase
        (
            ITestBackgroundDataProvider <TUserRole, TTestEnvironment> testBackgroundDataProvider,
            IDecryptor decryptor = null
        )
        {
            // Ensure generic types are enums.
            this.EnsureGenericArgumentsAreEnumTypes();

            this.TestBackgroundDataProvider = testBackgroundDataProvider;
            this.Decryptor = decryptor;

            if (testBackgroundDataProvider != null)
            {
                this.TestEnvironment = testBackgroundDataProvider.GetTargetTestEnvironment();
                this.WebBrowserToUse = testBackgroundDataProvider.GetWebBrowserTypeToUseForAcceptanceTests();

                var appSettings = ConfigurationManager.AppSettings;

                // Selenium Grid related settings.
                var runMode
                    = (appSettings [ConfigKeys.RUN_MODE].Trim().Equals("local"))
                                                ? TestRunMode.Local
                                                : TestRunMode.SeleniumGrid;

                var gridHubUrl = String.Empty;

                if (runMode == TestRunMode.SeleniumGrid)
                {
                    gridHubUrl = appSettings [ConfigKeys.SELENIUM_GRID_HUB_URL];
                }

                // Browser and web driver executable paths.
                var configKeyFirstPart = this.WebBrowserToUse.ToString();

                var browserExeAbsolutePath            = appSettings [configKeyFirstPart + ConfigKeys.BROWSER_EXE_ABSOLUTE_PATH_KEY_PART];
                var webDriverExeDirectoryAbsolutePath = appSettings [configKeyFirstPart + ConfigKeys.WEB_DRIVER_EXE_DIRECTORY_PATH_KEY_PART];

                // Prepare the web driver of choice.
                switch (this.WebBrowserToUse)
                {
                case WebBrowser.MozillaFirefox:
                    if (runMode == TestRunMode.Local)
                    {
                        var firefoxOptions = new FirefoxOptions {
                            BrowserExecutableLocation = browserExeAbsolutePath
                        };
                        this.WebDriver = new FirefoxDriver(webDriverExeDirectoryAbsolutePath, firefoxOptions);
                    }
                    else
                    {
                        var firefoxOptions = new FirefoxOptions();
                        this.WebDriver = new RemoteWebDriver(new Uri(gridHubUrl), firefoxOptions);
                    }
                    break;

                case WebBrowser.GoogleChrome:

                    if (runMode == TestRunMode.Local)
                    {
                        var chromeOptions = new ChromeOptions {
                            BinaryLocation = browserExeAbsolutePath
                        };
                        chromeOptions.AddAdditionalCapability("useAutomationExtension", false);
                        chromeOptions.AddArgument("no-sandbox");
                        this.WebDriver = new ChromeDriver(webDriverExeDirectoryAbsolutePath, chromeOptions);
                    }
                    else
                    {
                        var chromeOptions = new ChromeOptions();
                        chromeOptions.AddAdditionalCapability("useAutomationExtension", false);
                        chromeOptions.AddArgument("no-sandbox");
                        this.WebDriver = new RemoteWebDriver(new Uri(gridHubUrl), chromeOptions);
                    }
                    break;

                case WebBrowser.MicrosoftEdge:
                    if (runMode == TestRunMode.Local)
                    {
                        var edgeOptions = new EdgeOptions
                        {
                            BinaryLocation = browserExeAbsolutePath
                        };
                        var edgeService = EdgeDriverService.CreateDefaultService(webDriverExeDirectoryAbsolutePath, "msedgedriver.exe");
                        this.WebDriver = new EdgeDriver(edgeService, edgeOptions);
                    }
                    else
                    {
                        var edgeOptions = new EdgeOptions {
                            UseChromium = true
                        };
                        this.WebDriver = new RemoteWebDriver(new Uri(gridHubUrl), edgeOptions);
                    }
                    break;

                case WebBrowser.InternetExplorer:
                    if (runMode == TestRunMode.Local)
                    {
                        var ieOptions
                            = new InternetExplorerOptions
                            {
                            EnsureCleanSession = true,
                            RequireWindowFocus = true,
                            IntroduceInstabilityByIgnoringProtectedModeSettings = true
                            };

                        ieOptions.AddAdditionalCapability("useAutomationExtension", false);
                        this.WebDriver = new InternetExplorerDriver(webDriverExeDirectoryAbsolutePath, ieOptions);
                    }
                    else
                    {
                        var ieOptions
                            = new InternetExplorerOptions
                            {
                            EnsureCleanSession = true,
                            RequireWindowFocus = true,
                            IntroduceInstabilityByIgnoringProtectedModeSettings = true
                            };

                        ieOptions.AddAdditionalCapability("useAutomationExtension", false);
                        this.WebDriver = new RemoteWebDriver(new Uri(gridHubUrl), ieOptions);
                    }
                    break;

                default:
                    throw new NotImplementedException($"The specified web browser \"{ this.WebBrowserToUse }\" is not yet implemented for acceptance tests.");
                }
            }
        }