Skip to content

Commit

Permalink
- refactoring
Browse files Browse the repository at this point in the history
- removed unnecessary classes
  • Loading branch information
d3m0 committed Aug 17, 2020
1 parent 89e4b4b commit 894fee8
Show file tree
Hide file tree
Showing 10 changed files with 69 additions and 64 deletions.
3 changes: 3 additions & 0 deletions src/main/java/entities/Browser.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import enums.BrowserType;
import org.openqa.selenium.MutableCapabilities;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public interface Browser {
Expand All @@ -10,4 +11,6 @@ public interface Browser {
MutableCapabilities getBrowserOptions();

RemoteWebDriver getDriver();

DesiredCapabilities getCapabilities();
}
15 changes: 13 additions & 2 deletions src/main/java/entities/ChromeBrowser.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import enums.BrowserType;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import utils.OptionsManager;

public class ChromeBrowser implements Browser {
@Override
Expand All @@ -14,11 +14,22 @@ public BrowserType getType() {

@Override
public ChromeOptions getBrowserOptions() {
return OptionsManager.getChromeOptions();
return new ChromeOptions();
}

@Override
public RemoteWebDriver getDriver() {
return new ChromeDriver(getBrowserOptions());
}

@Override
public DesiredCapabilities getCapabilities() {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("chrome");
capabilities.setVersion("84.0");
capabilities.setCapability(ChromeOptions.CAPABILITY, getBrowserOptions());
capabilities.setCapability("enableVNC", true);
capabilities.setCapability("enableVideo", false);
return capabilities;
}
}
17 changes: 14 additions & 3 deletions src/main/java/entities/FirefoxBrowser.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import enums.BrowserType;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import utils.OptionsManager;

public class FirefoxBrowser implements Browser {
@Override
Expand All @@ -14,11 +14,22 @@ public BrowserType getType() {

@Override
public FirefoxOptions getBrowserOptions() {
return OptionsManager.getFirefoxOptions();
return new FirefoxOptions();
}

@Override
public RemoteWebDriver getDriver() {
return new FirefoxDriver(getBrowserOptions());
}
}

@Override
public DesiredCapabilities getCapabilities() {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("firefox");
capabilities.setVersion("79.0");
capabilities.setCapability(FirefoxOptions.FIREFOX_OPTIONS, getBrowserOptions());
capabilities.setCapability("enableVNC", true);
capabilities.setCapability("enableVideo", false);
return capabilities;
}
}
27 changes: 16 additions & 11 deletions src/main/java/utils/BaseTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,19 @@ public class BaseTest {

public void setup(String browserName) {
LOGGER.trace("Setting up {} driver", browserName);
BrowserType browserType = BrowserType.valueOf(browserName.toUpperCase());
switch (browserType) {
case CHROME:
setupDriver(new ChromeBrowser());
break;
case FIREFOX:
setupDriver(new FirefoxBrowser());
break;
default:
throw new NotFoundException("Desired browser not found. Please add");
try {
BrowserType browserType = BrowserType.valueOf(browserName.toUpperCase());
switch (browserType) {
case CHROME:
setupDriver(new ChromeBrowser());
break;
case FIREFOX:
setupDriver(new FirefoxBrowser());
break;
}
} catch (IllegalArgumentException exception) {
LOGGER.error("BROWSER NOT FOUND");
throw new NotFoundException(String.format("Browser '%s' not found. Please add", browserName));
}
}

Expand Down Expand Up @@ -73,16 +76,18 @@ public IndexPage openStartPage() {
}

private WebDriver setupWebDriverWithWebDriverManager(Browser browser) {
LOGGER.trace("Setting up driver with WebDriverManager");
BrowserType browserType = browser.getType();
DriverManagerType driverManagerType = DriverManagerType.valueOf(browserType.name());
WebDriverManager.getInstance(driverManagerType).setup();
return browser.getDriver();
}

private WebDriver setupWebDriverWithSelenoid(Browser browser) {
LOGGER.trace("Setting up driver with Selenoid");
WebDriver webDriver = null;
String selenoidHubAddress = System.getProperty("selenoid.hub.address");
DesiredCapabilities capabilities = CapabilitiesManager.getCapabilities(browser.getBrowserOptions());
DesiredCapabilities capabilities = browser.getCapabilities();
try {
webDriver = new RemoteWebDriver(URI.create(selenoidHubAddress + "/wd/hub").toURL(), capabilities);
} catch (MalformedURLException e) {
Expand Down
28 changes: 0 additions & 28 deletions src/main/java/utils/CapabilitiesManager.java

This file was deleted.

2 changes: 1 addition & 1 deletion src/main/java/utils/LoadingPageFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public static <T> T get(Class<T> pageObjectClass) {

if (!expectedPageTitle.equals(Verify.INVALID_TITLE)) {
String actualPageTitle = driver.getTitle();
Assert.assertEquals(expectedPageTitle, actualPageTitle, "Page title is correct.");
Assert.assertEquals(actualPageTitle, expectedPageTitle, "Page title is correct.");
}

String xpath = verify.xpath();
Expand Down
17 changes: 0 additions & 17 deletions src/main/java/utils/OptionsManager.java

This file was deleted.

5 changes: 5 additions & 0 deletions src/test/java/testcases/FailingCases.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,9 @@ public void testShouldFailWhenTryingToClickAbsentElement() {
SelenideElement tShirtsButton = Selenide.$(By.xpath(".//ul[not(contains(@style, 'display: none'))]/li/a[@title='T-shirts']/span"));
tShirtsButton.click();
}

@Test
public void testShouldFailBecauseOfIncorrectBrowser() {
openStartPage();
}
}
16 changes: 15 additions & 1 deletion src/test/resources/failing.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,21 @@
<test name="Cases with browser chrome" parallel="methods" thread-count="10">
<parameter name="browser" value="chrome"/>
<classes>
<class name="testcases.FailingCases"/>
<class name="testcases.FailingCases">
<methods>
<exclude name="testShouldFailBecauseOfIncorrectBrowser"/>
</methods>
</class>
</classes>
</test>
<test name="Test case with incorrect browser">
<classes>
<class name="testcases.FailingCases">
<parameter name="browser" value="Incorrect Browser"/>
<methods>
<include name="testShouldFailBecauseOfIncorrectBrowser"/>
</methods>
</class>
</classes>
</test>
<listeners>
Expand Down
3 changes: 2 additions & 1 deletion update_browsers.sh
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
cat config/browsers.json | jq -r '..|.image?|strings' | xargs -I{} docker pull {}
#!/bin/bash
cat config/browsers.json | jq -r '..|.image?|strings' | xargs -I{} docker pull {}

0 comments on commit 894fee8

Please sign in to comment.