<commit_before># Software Gauntlet
Automation framework for the testing of any site or service.  The framework is designed to provide comprehensive, reliable, efficient, effective and resilient validation with a reasonably sized test library.

# Onboarding (Windows)
In a PowerShell console, execute 'onboarding.ps1' found at the root of the repository.  
It will require restarting the console multiple times to complete each install.
 - PowerShell (5.0)
 - Chocolatey
 - JDK8 (Java 1.8)
 - Git
 - PoshGit (powershell support for Git)
 - IntelliJ

# Test Execution
In a console, in the project directory:

    .\gradlew.bat clean [suite]
**EXAMPLE** for Environment Validation Test (EVT):

    .\gradlew.bat clean evt
**NOTE:**
On first execution, gradle will install necessary files before executing the build.  This is a one-time install.

# Browsers
The appropriate WebDriver executables MUST be added to main/resources.  By default, IF chromedriver.exe exists in that location, Google Chrome will be used by default.  The following default DriverInstantiation implementations are available:
 - DefaultChromeInstantiation for Google Chrome
 - DefaultHtmlUnitInstantiation for HtmlUnit (headless)
 - DefaultFirefoxInstantiation for Mozilla Firefox
 - DefaultIeInstantiation for Microsoft InternetExplorer

To utilize any of these configurations, simply put the appropriate WebDriver executable in src/main/resources, and in your code call UiHost.getInstance([DriverInstantiation]).  For example, in a @BeforeMethod, add the following:

    UiHost.getInstance(DefaultChromeInstantiation.getInstance());

For reference, these default configurations are located in the UiNavigator jar file under 'driver'.  To implement an alternate configuration of any of these browsers, OR to add support for a different browser or mobile device, implement a new DriverInstantiation.

For example:
    
    public class DefaultChromeInstantiation extends DriverInstantiation {

        public static DriverInstantiation getInstance() {
            return new DefaultChromeInstantiation();
        }

        @Override
        protected ChromeDriver instantiateDriver() {
            System.setProperty("webdriver.chrome.driver", "./src/main/resources/chromedriver.exe");
            return new ChromeDriver();
        }

        @Override
        protected void configureDriver(WebDriver driver) {
            driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
            driver.manage().deleteAllCookies();
            driver.manage().window().fullscreen();
        }<commit_msg>Improve example use of DriverInstantiation<commit_after># Software Gauntlet
Automation framework for the testing of any site or service.  The framework is designed to provide comprehensive, reliable, efficient, effective and resilient validation with a reasonably sized test library.

# Onboarding (Windows)
In a PowerShell console, execute 'onboarding.ps1' found at the root of the repository.  
It will require restarting the console multiple times to complete each install.
 - PowerShell (5.0)
 - Chocolatey
 - JDK8 (Java 1.8)
 - Git
 - PoshGit (powershell support for Git)
 - IntelliJ

# Test Execution
In a console, in the project directory:

    .\gradlew.bat clean [suite]
**EXAMPLE** for Environment Validation Test (EVT):

    .\gradlew.bat clean evt
**NOTE:**
On first execution, gradle will install necessary files before executing the build.  This is a one-time install.

# Browsers
The appropriate WebDriver executables MUST be added to main/resources.  By default, IF chromedriver.exe exists in that location, Google Chrome will be used by default.  The following default DriverInstantiation implementations are available:
 - DefaultChromeInstantiation for Google Chrome
 - DefaultHtmlUnitInstantiation for HtmlUnit (headless)
 - DefaultFirefoxInstantiation for Mozilla Firefox
 - DefaultIeInstantiation for Microsoft InternetExplorer

To utilize any of these configurations, simply put the appropriate WebDriver executable in src/main/resources, and in your code call UiHost.getInstance([DriverInstantiation]).  For example, in a @BeforeMethod, add the following:

    UiHost.getInstance(DefaultChromeInstantiation.getInstance());

For reference, these default configurations are located in the UiNavigator jar file under 'driver'.  To implement an alternate configuration of any of these browsers, OR to add support for a different browser or mobile device, implement a new DriverInstantiation.

For example:
    
    public class CookieFreeFullScreenChromeInstantiation extends DriverInstantiation {

        public static DriverInstantiation getInstance() {
            return new CookieFreeFullScreenChromeInstantiation();
        }

        @Override
        protected ChromeDriver instantiateDriver() {
            System.setProperty("webdriver.chrome.driver", "./src/main/resources/chromedriver.exe");
            return new ChromeDriver();
        }

        @Override
        protected void configureDriver(WebDriver driver) {
            driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
            driver.manage().deleteAllCookies();
            driver.manage().window().fullscreen();
        }
{'fraction_non_alphanumeric': 0.0648130393096836, 'fraction_numerical': 0.0026845637583892616, 'mean_word_length': 3.981852913085005, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7261270', 'n_tokens_mistral': 1324, 'n_tokens_neox': 1241, 'n_words': 522}