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");