Skip to content

Commit b80f94b

Browse files
committed
Improve TestLeft
1 parent 200db49 commit b80f94b

File tree

8 files changed

+67
-29
lines changed

8 files changed

+67
-29
lines changed

src/main/java/org/sayem/browser/Browser.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
* Created by sayem on 08/02/17.
55
*/
66
public interface Browser<T> {
7+
78
T driver();
89
}

src/main/java/org/sayem/browser/BrowserAdapter.java

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.sayem.browser;
2+
3+
import java.util.function.Supplier;
4+
5+
import static java.util.Objects.requireNonNull;
6+
7+
public enum BrowserType {
8+
9+
CHROME(ChromeBrowser::new);
10+
11+
public final ThreadLocal<Adapter> driver = new ThreadLocal<>();
12+
13+
BrowserType(Supplier<Adapter> driver) {
14+
this.driver.set(requireNonNull(driver).get());
15+
}
16+
}

src/main/java/org/sayem/browser/ChromeBrowser.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,27 @@
99
import org.openqa.selenium.WebDriver;
1010
import org.openqa.selenium.chrome.ChromeDriver;
1111

12+
import static com.smartbear.testleft.BrowserType.Chrome;
13+
1214
public class ChromeBrowser implements Adapter {
1315

1416
@Override
1517
public Browser<WebPage> webPage(String url) throws TestAgentRunException, RestConnectionRefused, HttpException, ApiException {
1618
WebBrowser browser = new LocalDriver()
1719
.getApplications()
18-
.runBrowser(BrowserType.Chrome,
20+
.runBrowser(Chrome,
1921
url);
2022
WebPage page = browser.find(WebBrowser.class, new WebBrowserPattern() {{
21-
ObjectIdentifier = BrowserType.Chrome.getValueString().toLowerCase();
23+
ObjectIdentifier = Chrome.getValueString().toLowerCase();
2224
}}).find(WebPage.class, new WebPagePattern() {{
2325
URL = url;
2426
}});
25-
return new BrowserAdapter<>(page);
27+
return new TestLeftAdapter(page);
2628
}
2729

2830
@Override
2931
public Browser<WebDriver> webDriver() {
3032
WebDriverManager.chromedriver().setup();
31-
return new BrowserAdapter<>(new ChromeDriver());
33+
return new WebDriverAdapter(new ChromeDriver());
3234
}
3335
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.sayem.browser;
2+
3+
import com.smartbear.testleft.testobjects.web.WebPage;
4+
5+
public class TestLeftAdapter implements Browser<WebPage> {
6+
7+
private WebPage driver;
8+
9+
TestLeftAdapter(WebPage driver) {
10+
this.driver = driver;
11+
}
12+
13+
@Override
14+
public WebPage driver() {
15+
return driver;
16+
}
17+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.sayem.browser;
2+
3+
import org.openqa.selenium.WebDriver;
4+
5+
/**
6+
* Created by sayem on 08/02/17.
7+
*/
8+
public class WebDriverAdapter implements Browser<WebDriver> {
9+
10+
private WebDriver driver;
11+
12+
WebDriverAdapter(WebDriver driver) {
13+
this.driver = driver;
14+
}
15+
16+
@Override
17+
public WebDriver driver() {
18+
return driver;
19+
}
20+
}

src/main/java/org/sayem/config/TestBase.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.smartbear.testleft.testobjects.web.WebPage;
55
import org.openqa.selenium.WebDriver;
66
import org.sayem.browser.Browser;
7-
import org.sayem.browser.ChromeBrowser;
7+
import org.sayem.browser.BrowserType;
88
import org.sayem.listener.BrowserListener;
99
import org.testng.annotations.AfterMethod;
1010
import org.testng.annotations.Listeners;
@@ -27,12 +27,13 @@ public void tearDown() throws InvocationException, HttpException {
2727
}
2828

2929
protected Browser<WebDriver> webDriver() {
30-
webdriver = new ChromeBrowser().webDriver();
30+
webdriver = BrowserType.CHROME.driver.get().webDriver();
3131
return webdriver;
3232
}
3333

34-
protected Browser<WebPage> driver() throws TestAgentRunException, RestConnectionRefused, HttpException, ApiException {
35-
browser = new ChromeBrowser().webPage("http://www.google.com");
34+
protected Browser<WebPage> driver() throws TestAgentRunException,
35+
RestConnectionRefused, HttpException, ApiException {
36+
browser = BrowserType.CHROME.driver.get().webPage("http://www.google.com");
3637
return browser;
3738
}
3839
}

src/main/java/org/sayem/element/ElementAdapter.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import org.openqa.selenium.By;
44
import org.openqa.selenium.WebDriver;
55
import org.openqa.selenium.WebElement;
6-
import org.sayem.browser.BrowserAdapter;
76

87
import java.util.List;
98

@@ -14,8 +13,8 @@ public class ElementAdapter<T extends WebDriver> implements Element {
1413

1514
private T driver;
1615

17-
public ElementAdapter(BrowserAdapter<T> driver) {
18-
this.driver = driver.driver();
16+
public ElementAdapter(T driver) {
17+
this.driver = driver;
1918
}
2019

2120
@Override

0 commit comments

Comments
 (0)