Skip to content

Commit df88f3b

Browse files
committed
[java] add fields for all supported mobile commands
1 parent fb84617 commit df88f3b

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

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

+52-1
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,74 @@ public class SauceMobileOptions extends SauceOptions {
1818
private SaucePlatform platformName = SaucePlatform.ANDROID;
1919

2020
// Defined in Appium
21+
// These are the only values that are handled by Sauce Labs by default
22+
// Additional values will be populated by Appium's IOSOptions & AndroidOptions class instances
2123
private String app;
2224
private String deviceName;
2325
private String deviceOrientation = "portrait";
2426
private String platformVersion = "9";
27+
private String automationName;
2528

2629
// Supported by Sauce
2730
private String appiumVersion = "1.15.0";
31+
private String deviceType; // "table" or "phone"
32+
33+
// Supported by Sauce for Real Devices
34+
private String testobject_app_id;
35+
private String privateDeviceOnly;
36+
private String tabletOnly;
37+
private String phoneOnly;
38+
private String carrierConnectivityOnly;
39+
private String recordDeviceVitals;
40+
private String cacheId;
41+
private String testobject_test_live_view_url;
42+
private String testobject_test_report_url;
43+
private String testobject_test_report_api_url;
44+
private String testobject_session_creation_timeout;
45+
private String commandTimeouts;
46+
private String crosswalkApplication;
47+
private String autoGrantPermissions;
48+
private String enableAnimations;
49+
private String name;
2850

2951
public static final List<String> mobileW3COptions = List.of(
3052
"browserName",
3153
"platformName");
3254

3355
public static final List<String> mobileSauceDefinedOptions = List.of(
34-
"appiumVersion");
56+
"appiumVersion",
57+
"deviceType");
3558

3659
public static final List<String> appiumDefinedOptions = List.of(
3760
"app",
61+
"automationName",
3862
"deviceName",
3963
"platformVersion",
4064
"deviceOrientation");
4165

66+
public static final List<String> realDeviceSauceDefinedOptions = List.of(
67+
"testobject_app_id",
68+
"privateDeviceOnly",
69+
"tabletOnly",
70+
"phoneOnly",
71+
"carrierConnectivityOnly",
72+
"recordDeviceVitals",
73+
"cacheId",
74+
"testobject_test_live_view_url",
75+
"testobject_test_report_url",
76+
"testobject_test_report_api_url",
77+
"testobject_session_creation_timeout",
78+
"commandTimeouts",
79+
"crosswalkApplication",
80+
"autoGrantPermissions",
81+
"enableAnimations",
82+
"name");
83+
4284
public SauceMobileOptions() {
4385
this(new MutableCapabilities());
4486
}
4587

88+
// TODO: require users to work with Appium's MobileOptions class similar to Selenium
4689
public SauceMobileOptions(MutableCapabilities options) {
4790
appiumCapabilities = new MutableCapabilities(options.asMap());
4891
}
@@ -76,6 +119,10 @@ private void useW3cCapabilities() {
76119
addCapabilityIfDefined(sauceCapabilities, capability);
77120
});
78121

122+
sauceDefinedOptions.forEach((capability) -> {
123+
addCapabilityIfDefined(appiumCapabilities, capability);
124+
});
125+
79126
appiumCapabilities.setCapability("sauce:options", sauceCapabilities);
80127
}
81128

@@ -96,6 +143,10 @@ private void useJwpCapabilities(boolean to) {
96143
mobileSauceDefinedOptions.forEach((capability) -> {
97144
addCapabilityIfDefined(appiumCapabilities, capability);
98145
});
146+
147+
realDeviceSauceDefinedOptions.forEach((capability) -> {
148+
addCapabilityIfDefined(appiumCapabilities, capability);
149+
});
99150
}
100151

101152
private void useSaucePlatform(MutableCapabilities capabilities) {

0 commit comments

Comments
 (0)