Skip to content

Commit 8662c42

Browse files
committed
[java] update the property for enabling Sauce Bindings
1 parent 0783ddb commit 8662c42

File tree

12 files changed

+79
-40
lines changed

12 files changed

+79
-40
lines changed

java/junit5/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
<configuration>
112112
<properties>
113113
<configurationParameters>
114-
sauce.disabled = false
114+
sauce.enabled = true
115115
junit.jupiter.execution.parallel.enabled = true
116116
junit.jupiter.execution.parallel.mode.default = concurrent
117117
junit.jupiter.execution.parallel.config.strategy = fixed
@@ -132,7 +132,6 @@
132132
</includes>
133133
<properties>
134134
<configurationParameters>
135-
sauce.disabled = true
136135
junit.jupiter.execution.parallel.enabled = false
137136
</configurationParameters>
138137
</properties>

java/junit5/src/main/java/com/saucelabs/saucebindings/junit5/SauceBindingsExtension.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ private SauceBindingsExtension(SauceOptions sauceOptions, DataCenter dataCenter)
3737
this.buildName = CITools.getBuildName() + ": " + CITools.getBuildNumber();
3838
}
3939

40+
public void enable() {
41+
System.setProperty("sauce.enabled", "true");
42+
}
43+
4044
@Override
4145
public void beforeEach(ExtensionContext context) {
4246
SauceOptions options = updateOptions(context);
@@ -96,7 +100,7 @@ private ExtensionContext.Store getStore(ExtensionContext context) {
96100

97101
@Override
98102
public void testSuccessful(ExtensionContext context) {
99-
if (!SauceSession.isDisabled()) {
103+
if (SauceSession.isEnabled()) {
100104
SauceSession session = (SauceSession) getStore(context).get("session");
101105
try {
102106
session.stop(true);
@@ -110,7 +114,7 @@ public void testSuccessful(ExtensionContext context) {
110114

111115
@Override
112116
public void testFailed(ExtensionContext context, Throwable cause) {
113-
if (!SauceSession.isDisabled()) {
117+
if (SauceSession.isEnabled()) {
114118
SauceSession session = (SauceSession) getStore(context).get("session");
115119
try {
116120
session.stop(cause);
@@ -176,6 +180,11 @@ public Builder withDataCenter(DataCenter dataCenter) {
176180
return this;
177181
}
178182

183+
public Builder enable() {
184+
System.setProperty("sauce.enabled", "true");
185+
return this;
186+
}
187+
179188
public SauceBindingsExtension build() {
180189
return new SauceBindingsExtension(sauceOptions, dataCenter);
181190
}

java/junit5/src/test/java/com/saucelabs/saucebindings/junit5/examples/AccessibilityExample.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,14 @@ public class AccessibilityExample {
1212
WebDriver driver;
1313
SauceSession session;
1414

15+
// Register extension
1516
@RegisterExtension static SauceBindingsExtension sauceExtension = new SauceBindingsExtension();
1617

18+
// Enable extension (this also can be done by running with -Dsaucelabs.enable=true)
19+
static {
20+
sauceExtension.enable();
21+
}
22+
1723
@BeforeEach
1824
public void setUp(SauceSession session) {
1925
this.session = session;

java/junit5/src/test/java/com/saucelabs/saucebindings/junit5/examples/CapabilitiesExample.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,16 @@ public class CapabilitiesExample {
1515
WebDriver driver;
1616
SauceSession session;
1717

18+
// Register extension with Selenium capabilities instance
1819
@RegisterExtension
19-
SauceBindingsExtension sauceExtension =
20+
static SauceBindingsExtension sauceExtension =
2021
new SauceBindingsExtension.Builder().withCapabilities(getCapabilities()).build();
2122

23+
// Enable extension (this also can be done by running with -Dsaucelabs.enable=true)
24+
static {
25+
sauceExtension.enable();
26+
}
27+
2228
@BeforeEach
2329
public void setUp(SauceSession session, WebDriver driver) {
2430
this.session = session;

java/junit5/src/test/java/com/saucelabs/saucebindings/junit5/examples/DataCenterExample.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,16 @@ public class DataCenterExample {
1212
WebDriver driver;
1313
SauceSession session;
1414

15+
// Register extension with custom data center
1516
@RegisterExtension
1617
static SauceBindingsExtension sauceExtension =
1718
new SauceBindingsExtension.Builder().withDataCenter(DataCenter.EU_CENTRAL).build();
1819

20+
// Enable extension (this also can be done by running with -Dsaucelabs.enable=true)
21+
static {
22+
sauceExtension.enable();
23+
}
24+
1925
@BeforeEach
2026
public void setUp(SauceSession session, WebDriver driver) {
2127
this.session = session;

java/junit5/src/test/java/com/saucelabs/saucebindings/junit5/examples/OptionsExample.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,16 @@ public class OptionsExample {
1515
WebDriver driver;
1616
SauceSession session;
1717

18+
// Register extension with SauceOptions
1819
@RegisterExtension
1920
static SauceBindingsExtension sauceExtension =
2021
new SauceBindingsExtension.Builder().withSauceOptions(getSauceOptions()).build();
2122

23+
// Enable extension (this also can be done by running with -Dsaucelabs.enable=true)
24+
static {
25+
sauceExtension.enable();
26+
}
27+
2228
@BeforeEach
2329
public void setUp(SauceSession session, WebDriver driver) {
2430
this.session = session;

java/junit5/src/test/java/com/saucelabs/saucebindings/junit5/examples/QuickStartExample.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,14 @@ public class QuickStartExample {
1111
WebDriver driver;
1212
SauceSession session;
1313

14+
// Register extension with defaults
1415
@RegisterExtension static SauceBindingsExtension sauceExtension = new SauceBindingsExtension();
1516

17+
// Enable extension (this also can be done by running with -Dsaucelabs.enable=true)
18+
static {
19+
sauceExtension.enable();
20+
}
21+
1622
@BeforeEach
1723
public void setUp(SauceSession session, WebDriver driver) {
1824
this.session = session;

java/junit5/src/test/java/com/saucelabs/saucebindings/junit5/examples/ToggleLocalExample.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,22 @@ public class ToggleLocalExample {
1515
WebDriver driver;
1616
SauceSession session;
1717

18-
// Register multiple test watchers for local and sauce execution
18+
// Register Sauce Bindings extension with defaults
1919
@RegisterExtension static SauceBindingsExtension sauceExtension = new SauceBindingsExtension();
20+
// Register additional test watcher(s) for local execution
2021
@RegisterExtension TestWatcher testWatcher = new LocalTestWatcher();
2122

22-
// Change this property to "true" to run locally
23-
@BeforeAll
24-
public static void toggleSauce() {
25-
System.setProperty("sauce.disabled", "false");
23+
// Sauce Labs execution is disabled by default,
24+
// To run tests without Sauce, remove this code block and do not execute code with
25+
// `-Dsaucelabs.enabled=true`
26+
static {
27+
sauceExtension.enable();
2628
}
2729

2830
@BeforeEach
2931
public void setUp(SauceSession session, WebDriver driver) {
3032
this.session = session;
31-
this.driver = SauceSession.isDisabled() ? new ChromeDriver() : driver;
33+
this.driver = SauceSession.isEnabled() ? driver : new ChromeDriver();
3234
}
3335

3436
@Test
@@ -43,15 +45,15 @@ public class LocalTestWatcher implements TestWatcher {
4345
@Override
4446
public void testSuccessful(ExtensionContext context) {
4547
System.out.println("Test Succeeded");
46-
if (SauceSession.isDisabled()) {
48+
if (!SauceSession.isEnabled()) {
4749
driver.quit();
4850
}
4951
}
5052

5153
@Override
5254
public void testFailed(ExtensionContext context, Throwable cause) {
5355
System.out.println("Test Failed: " + cause.getMessage());
54-
if (SauceSession.isDisabled()) {
56+
if (!SauceSession.isEnabled()) {
5557
driver.quit();
5658
}
5759
}

java/junit5/src/test/java/com/saucelabs/saucebindings/junit5/examples/without/ToggleLocalExample.java

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,31 +31,32 @@ public class ToggleLocalExample {
3131
@RegisterExtension TestWatcher watcher = new SauceTestWatcher();
3232
@RegisterExtension TestWatcher testWatcher = new LocalTestWatcher();
3333

34-
// To run test on Sauce Labs, change this to "false"
34+
// All Sauce specific code must use conditionals to avoid errors
35+
// This is an example of how a user would toggle those conditionals
36+
// This property would typically get set in the run command that gets executed on the CI tool
37+
boolean sauceEnabled() {
38+
return Boolean.getBoolean("sauce.enabled");
39+
}
40+
3541
@BeforeAll
36-
public static void disableSauce() {
37-
System.setProperty("sauce.disabled", "true");
42+
public static void enableSauce() {
43+
System.setProperty("sauce.enabled", "true");
3844
}
3945

4046
@BeforeEach
4147
public void setup(TestInfo testInfo) {
42-
if (isSauceDisabled()) {
43-
driver = new ChromeDriver();
44-
} else {
48+
if (sauceEnabled()) {
4549
this.testInfo = testInfo;
4650
driver = new RemoteWebDriver(getSauceUrl(), getCapabilities());
4751
this.sessionId = ((RemoteWebDriver) driver).getSessionId();
52+
} else {
53+
driver = new ChromeDriver();
4854
}
4955
}
5056

51-
@AfterAll
52-
public static void resetSauce() {
53-
System.clearProperty("sauce.disabled");
54-
}
55-
5657
@Test
5758
public void toggleLocal() {
58-
if (!isSauceDisabled()) {
59+
if (sauceEnabled()) {
5960
((JavascriptExecutor) driver).executeScript("sauce:context=Navigating to Swag Labs");
6061
}
6162

@@ -72,11 +73,6 @@ private static SauceOptions getSauceOptions() {
7273
.build();
7374
}
7475

75-
private boolean isSauceDisabled() {
76-
String value = System.getenv("SAUCE_DISABLED");
77-
return Boolean.parseBoolean(value) || Boolean.getBoolean("sauce.disabled");
78-
}
79-
8076
private Capabilities getCapabilities() {
8177
ChromeOptions options = new ChromeOptions();
8278
Map<String, Object> sauceOptions = new HashMap<>();
@@ -114,7 +110,7 @@ public void testFailed(ExtensionContext context, Throwable cause) {
114110
private class SauceTestWatcher implements TestWatcher {
115111
@Override
116112
public void testSuccessful(ExtensionContext context) {
117-
if (isSauceDisabled()) {
113+
if (!sauceEnabled()) {
118114
return;
119115
}
120116

@@ -129,7 +125,7 @@ public void testSuccessful(ExtensionContext context) {
129125

130126
@Override
131127
public void testFailed(ExtensionContext context, Throwable cause) {
132-
if (isSauceDisabled()) {
128+
if (!sauceEnabled()) {
133129
return;
134130
}
135131

java/main/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
<configuration>
142142
<properties>
143143
<configurationParameters>
144-
sauce.disabled = false
144+
sauce.enabled = true
145145
junit.jupiter.execution.parallel.enabled = true
146146
junit.jupiter.execution.parallel.mode.default = concurrent
147147
junit.jupiter.execution.parallel.config.strategy = fixed
@@ -162,7 +162,6 @@
162162
</includes>
163163
<properties>
164164
<configurationParameters>
165-
sauce.disabled = true
166165
junit.jupiter.execution.parallel.enabled = false
167166
</configurationParameters>
168167
</properties>

java/main/src/main/java/com/saucelabs/saucebindings/SauceSession.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -320,19 +320,23 @@ public void addTags(List<String> tags) {
320320
*
321321
* @return whether the methods in this library are ignored (true) or executed (false)
322322
*/
323-
public static boolean isDisabled() {
324-
String env = System.getenv("SAUCE_DISABLED");
325-
String prop = System.getProperty("sauce.disabled");
323+
public static boolean isEnabled() {
324+
String env = System.getenv("SAUCE_ENABLED");
325+
String prop = System.getProperty("sauce.enabled");
326326

327327
if (env != null) {
328328
return Boolean.parseBoolean(env);
329329
} else if (prop != null) {
330330
return Boolean.parseBoolean(prop);
331331
} else {
332-
return true;
332+
return false;
333333
}
334334
}
335335

336+
private static boolean isDisabled() {
337+
return !isEnabled();
338+
}
339+
336340
/**
337341
* Not intended for subclassing. Package-private for testing.
338342
*

java/main/src/test/java/com/saucelabs/saucebindings/integration/DisableSauceTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
public class DisableSauceTest {
1212

1313
@Test
14-
@EnabledIfSystemProperty(named = "sauce.disabled", matches = "true")
15-
@DisabledIfSystemProperty(named = "sauce.disabled", matches = "(?!true)") // Needed for IntelliJ
14+
@EnabledIfSystemProperty(named = "sauce.enabled", matches = "(!?true)")
15+
@DisabledIfSystemProperty(named = "sauce.enabled", matches = "true") // Needed for IntelliJ
1616
public void disableSauce() {
1717
SauceSession session = new SauceSession();
1818
WebDriver driver = session.start();

0 commit comments

Comments
 (0)