Skip to content

Commit f2a070e

Browse files
committed
SQUASH - make changes based on feedback
1 parent f95a70d commit f2a070e

30 files changed

+301
-235
lines changed

docs/BASIC_OPTIONS.md

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,31 +20,34 @@ Here's an example of running a test on Firefox and Windows 8.0.
2020

2121
```java
2222
import com.saucelabs.saucebindings.*;
23+
import com.saucelabs.saucebindings.options.SauceOptions;
24+
import com.saucelabs.saucebindings.options.capabilities.Browser;
25+
import com.saucelabs.saucebindings.options.capabilities.SaucePlatform;
2326
import org.junit.Test;
2427
import org.openqa.selenium.remote.RemoteWebDriver;
2528

2629
public class BasicOptionsTest {
2730

28-
@Test
29-
public void basicOptions() {
30-
// 1. Specify the 3 basic parameters of a SauceOptions instance
31-
SauceOptions sauceOptions = new SauceOptions();
32-
sauceOptions.setBrowserName(Browser.FIREFOX);
33-
sauceOptions.setBrowserVersion("73.0");
34-
sauceOptions.setPlatformName(SaucePlatform.WINDOWS_8);
31+
@Test
32+
public void basicOptions() {
33+
// 1. Specify the 3 basic parameters of a SauceOptions instance
34+
SauceOptions sauceOptions = new SauceOptions();
35+
sauceOptions.setBrowserName(Browser.FIREFOX);
36+
sauceOptions.setBrowserVersion("73.0");
37+
sauceOptions.setPlatformName(SaucePlatform.WINDOWS_8);
3538

36-
// 2. Create Session object with the Options object instance
37-
SauceSession session = new SauceSession(sauceOptions);
39+
// 2. Create Session object with the Options object instance
40+
SauceSession session = new SauceSession(sauceOptions);
3841

39-
// 3. Start Session to get the Driver
40-
RemoteWebDriver driver = session.start();
42+
// 3. Start Session to get the Driver
43+
RemoteWebDriver driver = session.start();
4144

42-
// 4. Use the driver in your tests just like normal
43-
driver.get("https://www.saucedemo.com/");
45+
// 4. Use the driver in your tests just like normal
46+
driver.get("https://www.saucedemo.com/");
4447

45-
// 5. Stop the Session with whether the test passed or failed
46-
session.stop(true);
47-
}
48+
// 5. Stop the Session with whether the test passed or failed
49+
session.stop(true);
50+
}
4851
}
4952
```
5053

docs/BROWSER_OPTIONS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ one of these objects:
1313

1414
```java
1515
import com.saucelabs.saucebindings.*;
16+
import com.saucelabs.saucebindings.options.SauceOptions;
1617
import org.junit.Test;
1718
import org.openqa.selenium.firefox.FirefoxOptions;
1819
import org.openqa.selenium.remote.RemoteWebDriver;

docs/SAUCE_OPTIONS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ All of these configurations can now be easily set with the `SauceOptions` class
1313
<!--Java-->
1414

1515
```java
16-
import com.saucelabs.saucebindings.*;
16+
import com.saucelabs.saucebindings.options.SauceOptions;
1717
import org.junit.Test;
1818
import org.openqa.selenium.remote.RemoteWebDriver;
1919

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

Lines changed: 0 additions & 7 deletions
This file was deleted.

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

Lines changed: 0 additions & 7 deletions
This file was deleted.

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.saucelabs.saucebindings;
22

3-
import com.saucelabs.saucebindings.configs.SauceConfigs;
3+
import com.saucelabs.saucebindings.options.BaseConfigurations;
4+
import com.saucelabs.saucebindings.options.SauceOptions;
45
import lombok.Getter;
56
import lombok.Setter;
67
import org.openqa.selenium.InvalidArgumentException;
@@ -21,7 +22,7 @@ public SauceSession() {
2122
this(new SauceOptions());
2223
}
2324

24-
public SauceSession(SauceConfigs configs) {
25+
public SauceSession(BaseConfigurations configs) {
2526
this(configs.build());
2627
}
2728

java/src/main/java/com/saucelabs/saucebindings/configs/SauceConfigsBrowser.java

Lines changed: 0 additions & 127 deletions
This file was deleted.

java/src/main/java/com/saucelabs/saucebindings/configs/SauceConfigsChrome.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

java/src/main/java/com/saucelabs/saucebindings/examples/BasicOptionsTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.saucelabs.saucebindings.examples;
22

33
import com.saucelabs.saucebindings.*;
4+
import com.saucelabs.saucebindings.options.SauceOptions;
5+
import com.saucelabs.saucebindings.options.capabilities.Browser;
6+
import com.saucelabs.saucebindings.options.capabilities.SaucePlatform;
47
import org.junit.Test;
58
import org.openqa.selenium.remote.RemoteWebDriver;
69

java/src/main/java/com/saucelabs/saucebindings/examples/BrowserOptionsTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.saucelabs.saucebindings.examples;
22

33
import com.saucelabs.saucebindings.*;
4+
import com.saucelabs.saucebindings.options.SauceOptions;
45
import org.junit.Test;
56
import org.openqa.selenium.firefox.FirefoxOptions;
67
import org.openqa.selenium.remote.RemoteWebDriver;

java/src/main/java/com/saucelabs/saucebindings/examples/SauceLabsOptionsTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.saucelabs.saucebindings.examples;
22

33
import com.saucelabs.saucebindings.*;
4+
import com.saucelabs.saucebindings.options.SauceOptions;
45
import org.junit.Test;
56
import org.openqa.selenium.remote.RemoteWebDriver;
67

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.saucelabs.saucebindings.exceptions;
2+
3+
public class InvalidSauceOptionsArgumentException extends RuntimeException {
4+
public InvalidSauceOptionsArgumentException(String message) {
5+
super(message);
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.saucelabs.saucebindings.exceptions;
2+
3+
public class SauceEnvironmentVariablesNotSetException extends RuntimeException {
4+
public SauceEnvironmentVariablesNotSetException(String message) {
5+
super(message);
6+
}
7+
}

java/src/main/java/com/saucelabs/saucebindings/configs/SauceConfigs.java renamed to java/src/main/java/com/saucelabs/saucebindings/options/BaseConfigurations.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
package com.saucelabs.saucebindings.configs;
1+
package com.saucelabs.saucebindings.options;
22

3-
import com.saucelabs.saucebindings.JobVisibility;
4-
import com.saucelabs.saucebindings.SauceOptions;
5-
import com.saucelabs.saucebindings.SaucePlatform;
3+
import com.saucelabs.saucebindings.options.capabilities.JobVisibility;
4+
import com.saucelabs.saucebindings.options.capabilities.SaucePlatform;
65

76
import java.util.List;
87
import java.util.Map;
98

10-
public class SauceConfigs<T extends SauceConfigs<T>> {
9+
public class BaseConfigurations<T extends BaseConfigurations<T>> {
1110
// Needs to be instantiated in subclass
1211
SauceOptions sauceOptions = null;
1312

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.saucelabs.saucebindings.options;
2+
3+
import com.saucelabs.saucebindings.exceptions.InvalidSauceOptionsArgumentException;
4+
import org.openqa.selenium.chrome.ChromeOptions;
5+
6+
public class ChromeConfigurations extends VDCConfigurations<ChromeConfigurations> {
7+
ChromeConfigurations(ChromeOptions chromeOptions) {
8+
sauceOptions = new SauceOptions(chromeOptions);
9+
}
10+
11+
public ChromeConfigurations setCapturePerformance() {
12+
sauceOptions.setExtendedDebugging(true);
13+
sauceOptions.setCapturePerformance(true);
14+
if (sauceOptions.getName() == null) {
15+
throw new InvalidSauceOptionsArgumentException("Need to call `setName()` before `setCapturePerformance`");
16+
}
17+
return this;
18+
}
19+
20+
// Use case is a different point release than the driver provided by default
21+
// TODO - consider ensuring this matches browser Version
22+
public ChromeConfigurations setChromedriverVersion(String version) {
23+
sauceOptions.setChromedriverVersion(version);
24+
return this;
25+
}
26+
27+
public ChromeConfigurations setExtendedDebugging() {
28+
sauceOptions.setExtendedDebugging(true);
29+
return this;
30+
}
31+
}

java/src/main/java/com/saucelabs/saucebindings/SauceOptions.java renamed to java/src/main/java/com/saucelabs/saucebindings/options/SauceOptions.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
package com.saucelabs.saucebindings;
1+
package com.saucelabs.saucebindings.options;
22

3-
import com.saucelabs.saucebindings.configs.SauceConfigsChrome;
3+
import com.saucelabs.saucebindings.exceptions.InvalidSauceOptionsArgumentException;
4+
import com.saucelabs.saucebindings.exceptions.SauceEnvironmentVariablesNotSetException;
5+
import com.saucelabs.saucebindings.options.capabilities.*;
46
import lombok.AccessLevel;
57
import lombok.Getter;
68
import lombok.Setter;
@@ -134,16 +136,16 @@ public class SauceOptions {
134136
* @return SauceConfigsChrome,
135137
* note: constructor implementation is deprecated for public use, but usage here is intentional
136138
*/
137-
public static SauceConfigsChrome chrome() {
138-
return new SauceConfigsChrome(new ChromeOptions());
139+
public static ChromeConfigurations chrome() {
140+
return new ChromeConfigurations(new ChromeOptions());
139141
}
140142

141143
/**
142144
* @return SauceConfigsChrome,
143145
* note: constructor implementation is deprecated for public use, but usage here is intentional
144146
*/
145-
public static SauceConfigsChrome chrome(ChromeOptions chromeOptions) {
146-
return new SauceConfigsChrome(chromeOptions);
147+
public static ChromeConfigurations chrome(ChromeOptions chromeOptions) {
148+
return new ChromeConfigurations(chromeOptions);
147149
}
148150

149151
public SauceOptions() {
@@ -363,7 +365,7 @@ protected String getSystemProperty(String key) {
363365
return System.getProperty(key);
364366
}
365367

366-
protected String getEnvironmentVariable(String key) {
368+
public String getEnvironmentVariable(String key) {
367369
return System.getenv(key);
368370
}
369371
}

0 commit comments

Comments
 (0)