diff --git a/common/src/main/java/com/saucelabs/common/SauceLabs.java b/common/src/main/java/com/saucelabs/common/SauceLabs.java
new file mode 100644
index 0000000..46f98cd
--- /dev/null
+++ b/common/src/main/java/com/saucelabs/common/SauceLabs.java
@@ -0,0 +1,12 @@
+package com.saucelabs.common;
+
+public class SauceLabs {
+
+ public SauceRemoteGrid grid;
+ public SauceHelper helper;
+
+ public SauceLabs(){
+ this.grid = new SauceRemoteGrid();
+ this.helper = new SauceHelper();
+ }
+}
diff --git a/common/src/main/java/com/saucelabs/common/SauceRemoteGrid.java b/common/src/main/java/com/saucelabs/common/SauceRemoteGrid.java
new file mode 100644
index 0000000..71751c5
--- /dev/null
+++ b/common/src/main/java/com/saucelabs/common/SauceRemoteGrid.java
@@ -0,0 +1,58 @@
+package com.saucelabs.common;
+
+import org.openqa.selenium.MutableCapabilities;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.chrome.ChromeOptions;
+import org.openqa.selenium.remote.RemoteWebDriver;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+public class SauceRemoteGrid {
+
+ private static final String SAUCE_ONDEMAND_URL = "https://ondemand.saucelabs.com/wd/hub";
+
+ private MutableCapabilities options;
+ private WebDriver driver;
+
+ public SauceRemoteGrid(MutableCapabilities capabilities){
+ this.options = capabilities;
+ //this.driver = connect(capabilities);
+ }
+
+ public SauceRemoteGrid(){
+ this(new MutableCapabilities());
+ }
+
+ public SauceRemoteGrid(String browser){
+ this.options = browserNameToOptions(browser);
+ //this.driver = connect(this.options);
+ }
+
+
+ public MutableCapabilities getOptions() {
+ return options;
+ }
+
+ public WebDriver getDriver() {
+ return driver;
+ }
+
+ private MutableCapabilities browserNameToOptions(String browser) {
+ if (browser.toLowerCase().equals("chrome")) {
+ return new ChromeOptions();
+ }
+ else {
+ return new MutableCapabilities();
+ }
+ }
+
+ private WebDriver connect(MutableCapabilities options) {
+ try {
+ return new RemoteWebDriver(new URL(SAUCE_ONDEMAND_URL), options);
+ } catch (MalformedURLException e) {
+ System.out.println("Did you change the Sauce URL?");
+ return null;
+ }
+ }
+}
diff --git a/common/src/test/java/com.saucelabs.common/SauceRemoteGridTest.java b/common/src/test/java/com.saucelabs.common/SauceRemoteGridTest.java
new file mode 100644
index 0000000..f148b5f
--- /dev/null
+++ b/common/src/test/java/com.saucelabs.common/SauceRemoteGridTest.java
@@ -0,0 +1,63 @@
+package com.saucelabs.common;
+
+import org.junit.Test;
+import org.openqa.selenium.MutableCapabilities;
+import org.openqa.selenium.chrome.ChromeOptions;
+import org.openqa.selenium.remote.DesiredCapabilities;
+
+import static org.junit.Assert.assertEquals;
+
+public class SauceRemoteGridTest {
+
+ private SauceRemoteGrid sauceGrid;
+
+ @Test
+ public void basicDefault() {
+ sauceGrid = new SauceRemoteGrid();
+
+ MutableCapabilities expectedOptions = new MutableCapabilities();
+
+ assertEquals(sauceGrid.getOptions(), expectedOptions);
+ }
+
+ @Test
+ public void desiredCapabilities(){
+ DesiredCapabilities capabilities = new DesiredCapabilities();
+
+ sauceGrid = new SauceRemoteGrid(capabilities);
+
+ MutableCapabilities expectedOptions = new MutableCapabilities();
+
+ assertEquals(sauceGrid.getOptions(), expectedOptions);
+ }
+
+ @Test
+ public void browserOptions(){
+ MutableCapabilities options = new MutableCapabilities();
+
+ sauceGrid = new SauceRemoteGrid(options);
+
+ MutableCapabilities expectedOptions = new MutableCapabilities();
+
+ assertEquals(sauceGrid.getOptions(), expectedOptions);
+ }
+
+ @Test
+ public void setOnlyBrowser(){
+ sauceGrid = new SauceRemoteGrid("chrome");
+
+ MutableCapabilities expectedOptions = new ChromeOptions();
+
+ assertEquals(sauceGrid.getOptions(), expectedOptions);
+ }
+
+ @Test
+ public void setOnlyMobileOS() {
+ sauceGrid = new SauceRemoteGrid("android");
+
+ MutableCapabilities expectedOptions = new MutableCapabilities();
+ expectedOptions.setCapability("platformName", "Android");
+
+ assertEquals(sauceGrid.getOptions(), expectedOptions);
+ }
+}
diff --git a/pom.xml b/pom.xml
index cab1993..1d8c8dd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,6 @@
org.seleniumhq.selenium
selenium-java
3.141.59
- test