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