Skip to content

Commit 1b199c1

Browse files
committed
Added missing files to branch
1 parent ed56434 commit 1b199c1

4 files changed

Lines changed: 26 additions & 41 deletions

File tree

pom.xml

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<testng.version>7.4.0</testng.version>
2525
<cucumber.version>6.10.4</cucumber.version>
2626
<jackson.version>2.12.2</jackson.version>
27+
<webdriver-framework.version>0.0.1</webdriver-framework.version>
2728
</properties>
2829

2930
<dependencies>
@@ -103,19 +104,11 @@
103104
</dependency>
104105

105106
<dependency>
106-
<groupId>com.fasterxml.jackson.dataformat</groupId>
107-
<artifactId>jackson-dataformat-yaml</artifactId>
108-
<version>${jackson.version}</version>
109-
<scope>test</scope>
110-
</dependency>
111-
112-
<dependency>
113-
<groupId>com.fasterxml.jackson.core</groupId>
114-
<artifactId>jackson-databind</artifactId>
115-
<version>${jackson.version}</version>
107+
<groupId>com.browserstack</groupId>
108+
<artifactId>webdriver-framework-testng</artifactId>
109+
<version>${webdriver-framework.version}</version>
116110
<scope>test</scope>
117111
</dependency>
118-
119112
</dependencies>
120113

121114
<build>

src/test/java/com/browserstack/examples/stepdefs/AbstractBaseSteps.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import org.openqa.selenium.WebDriver;
44

5-
import com.browserstack.examples.core.WebDriverFactory;
6-
import com.browserstack.examples.core.WebDriverManager;
5+
import com.browserstack.examples.tests.RunWebDriverCucumberTests;
6+
import com.browserstack.webdriver.core.WebDriverFactory;
77

88
/**
99
* Created with IntelliJ IDEA.
@@ -12,16 +12,14 @@
1212
*/
1313
public abstract class AbstractBaseSteps {
1414

15-
private WebDriverManager webDriverManager;
1615
private WebDriver webDriver;
1716

1817
public AbstractBaseSteps() {
19-
this.webDriverManager = WebDriverManager.getInstance();
2018
}
2119

2220
public WebDriver getWebDriver() {
2321
if (this.webDriver == null) {
24-
this.webDriver = webDriverManager.getWebDriver();
22+
this.webDriver = RunWebDriverCucumberTests.getManagedWebDriver().getWebDriver();
2523
}
2624
return this.webDriver;
2725
}

src/test/java/com/browserstack/examples/tests/RunWebDriverCucumberTests.java

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
package com.browserstack.examples.tests;
22

3-
import java.util.ArrayList;
4-
import java.util.Arrays;
5-
import java.util.List;
3+
import java.util.Iterator;
64

75
import org.testng.annotations.AfterClass;
86
import org.testng.annotations.BeforeClass;
97
import org.testng.annotations.DataProvider;
8+
import org.testng.annotations.Listeners;
109
import org.testng.annotations.Test;
1110

12-
import com.browserstack.examples.core.config.Platform;
13-
import com.browserstack.examples.core.WebDriverFactory;
14-
import com.browserstack.examples.core.ManagedWebDriver;
15-
import com.browserstack.examples.core.WebDriverManager;
11+
import com.browserstack.webdriver.testng.LazyInitWebDriverIterator;
12+
import com.browserstack.webdriver.testng.ManagedWebDriver;
13+
import com.browserstack.webdriver.testng.listeners.WebDriverListener;
1614
import io.cucumber.testng.CucumberOptions;
1715
import io.cucumber.testng.FeatureWrapper;
1816
import io.cucumber.testng.PickleWrapper;
@@ -35,40 +33,36 @@
3533
"json:reports/tests/cucumber/json/cucumber.json"
3634
}
3735
)
36+
@Listeners({WebDriverListener.class})
3837
public class RunWebDriverCucumberTests {
3938

4039
private TestNGCucumberRunner testNGCucumberRunner;
41-
private WebDriverFactory webDriverFactory;
42-
private WebDriverManager webDriverManager;
40+
private static final ThreadLocal<ManagedWebDriver> threadLocalWebDriver = new ThreadLocal<>();
4341

4442
@BeforeClass(alwaysRun = true)
4543
public void setUpClass() {
4644
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
47-
this.webDriverFactory = WebDriverFactory.getInstance();
48-
this.webDriverManager = WebDriverManager.getInstance();
45+
}
46+
47+
private synchronized static void setThreadLocalWebDriver(ManagedWebDriver managedWebDriver) {
48+
threadLocalWebDriver.set(managedWebDriver);
49+
}
50+
51+
public synchronized static ManagedWebDriver getManagedWebDriver() {
52+
return threadLocalWebDriver.get();
4953
}
5054

5155
@Test(groups = "cucumber", description = "Runs Cucumber Feature", dataProvider = "scenarios")
5256
public void feature(PickleWrapper pickleWrapper, FeatureWrapper featureWrapper, ManagedWebDriver managedWebDriver) {
5357
managedWebDriver.setTestName(pickleWrapper.getPickle().getName());
54-
webDriverManager.setThreadLocalWebDriver(managedWebDriver);
58+
setThreadLocalWebDriver(managedWebDriver);
5559
testNGCucumberRunner.runScenario(pickleWrapper.getPickle());
5660
}
5761

5862
@DataProvider(name = "scenarios", parallel = true)
59-
public Object[][] scenarios() {
60-
List<Object[]> browserScenarioParams = new ArrayList<>();
61-
63+
public Iterator<Object[]> scenarios() {
6264
Object[][] scenarios = testNGCucumberRunner.provideScenarios();
63-
for (Object[] testParams : scenarios) {
64-
for (Platform platform : webDriverFactory.getPlatforms()) {
65-
Object[] newTestParams = Arrays.copyOf(testParams, testParams.length + 1);
66-
ManagedWebDriver managedWebDriver = new ManagedWebDriver(platform, webDriverFactory);
67-
newTestParams[testParams.length] = managedWebDriver;
68-
browserScenarioParams.add(newTestParams);
69-
}
70-
}
71-
return browserScenarioParams.toArray(new Object[0][0]);
65+
return new LazyInitWebDriverIterator(true, scenarios);
7266
}
7367

7468
@AfterClass(alwaysRun = true)

src/test/resources/features/e2e.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Feature: End to End Feature
22

3-
@e2e
3+
@e2e @smoke
44
Scenario: End to End Scenario
55
Given I navigate to website
66
And I SignIn as "fav_user" with "testingisfun99" password

0 commit comments

Comments
 (0)