diff --git a/pom.xml b/pom.xml index a8b0503..bcee476 100644 --- a/pom.xml +++ b/pom.xml @@ -21,15 +21,20 @@ org.seleniumhq.selenium selenium-java - 2.53.1 + 3.141.59 test com.saucelabs sauce_junit - 2.1.20 + 2.1.25 test + + com.google.guava + guava + 21.0 + diff --git a/src/test/java/com/yourcompany/Tests/TestBase.java b/src/test/java/com/yourcompany/Tests/TestBase.java index 2979a92..d444e83 100644 --- a/src/test/java/com/yourcompany/Tests/TestBase.java +++ b/src/test/java/com/yourcompany/Tests/TestBase.java @@ -14,6 +14,7 @@ import com.saucelabs.junit.SauceOnDemandTestWatcher; import java.net.URL; +import java.util.HashMap; import java.util.LinkedList; import com.saucelabs.common.SauceOnDemandSessionIdProvider; @@ -36,6 +37,7 @@ public class TestBase implements SauceOnDemandSessionIdProvider { public static String accesskey = System.getenv("SAUCE_ACCESS_KEY"); public static String seleniumURI; public static String buildTag; + public static HashMap endpoints = new HashMap<>(); /** * Constructs a {@link SauceOnDemandAuthentication} instance using the supplied user name/access key. To use the authentication * supplied by environment variables or from an external file, use the no-arg {@link SauceOnDemandAuthentication} constructor. @@ -91,11 +93,11 @@ public TestBase(String os, String version, String browser, String deviceName, St public static LinkedList browsersStrings() { LinkedList browsers = new LinkedList(); - browsers.add(new String[]{"Windows 10", "14.14393", "MicrosoftEdge", null, null}); - browsers.add(new String[]{"Windows 10", "49.0", "firefox", null, null}); - browsers.add(new String[]{"Windows 7", "11.0", "internet explorer", null, null}); - browsers.add(new String[]{"OS X 10.11", "10.0", "safari", null, null}); - browsers.add(new String[]{"OS X 10.10", "54.0", "chrome", null, null}); + browsers.add(new String[]{"Windows 10", "latest", "MicrosoftEdge", null, null}); + browsers.add(new String[]{"Windows 10", "latest", "firefox", null, null}); + browsers.add(new String[]{"Windows 7", "latest", "internet explorer", null, null}); + browsers.add(new String[]{"macOS 10.13", "latest", "safari", null, null}); + browsers.add(new String[]{"macOS 10.14", "latest", "chrome", null, null}); return browsers; } @@ -146,8 +148,22 @@ public String getSessionId() { @BeforeClass public static void setupClass() { - //get the uri to send the commands to. - seleniumURI = "@ondemand.saucelabs.com:443"; + endpoints.put("https://saucelabs.com/", "@ondemand.saucelabs.com:443"); + endpoints.put("https://eu-central-1.saucelabs.com/", "@ondemand.eu-central-1.saucelabs.com:443"); + endpoints.put("https://us-east-1.saucelabs.com/", "@ondemand.us-east-1.saucelabs.com:443"); + + String sauceRestEndpoint = System.getenv("SAUCE_REST_ENDPOINT"); + System.out.printf("SAUCE_REST_ENDPOINT: %s %n", sauceRestEndpoint); + + if (endpoints.containsKey(sauceRestEndpoint)) { + System.out.printf("Setting OnDemand endpoint to: %s %n", endpoints.get(sauceRestEndpoint)); + seleniumURI = endpoints.get(sauceRestEndpoint); + } + else { // set us-west-1 as default + System.out.println("Setting OnDemand endpoint to default."); + seleniumURI = "@ondemand.saucelabs.com:443"; + } + //If available add build tag. When running under Jenkins BUILD_TAG is automatically set. //You can set this manually on manual runs. buildTag = System.getenv("BUILD_TAG");