From 16a455922a0ef5c76f85a97e968f7c9e954a2c17 Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Sun, 31 Oct 2021 17:30:24 +0100 Subject: [PATCH 1/3] refactor: Tune setting of default platform names for --- .../io/appium/java_client/AppiumDriver.java | 42 +++++++++++-- .../java_client/android/AndroidDriver.java | 62 +++++++++---------- .../io/appium/java_client/ios/IOSDriver.java | 57 ++++++++--------- .../io/appium/java_client/mac/Mac2Driver.java | 62 ++++++++----------- .../java_client/windows/WindowsDriver.java | 36 ++++++----- 5 files changed, 140 insertions(+), 119 deletions(-) diff --git a/src/main/java/io/appium/java_client/AppiumDriver.java b/src/main/java/io/appium/java_client/AppiumDriver.java index 31f68b353..f7fa135c9 100644 --- a/src/main/java/io/appium/java_client/AppiumDriver.java +++ b/src/main/java/io/appium/java_client/AppiumDriver.java @@ -16,9 +16,11 @@ package io.appium.java_client; +import static io.appium.java_client.internal.CapabilityHelpers.APPIUM_PREFIX; import static io.appium.java_client.remote.MobileCapabilityType.PLATFORM_NAME; import static org.apache.commons.lang3.StringUtils.isBlank; +import io.appium.java_client.internal.CapabilityHelpers; import io.appium.java_client.remote.AppiumCommandExecutor; import io.appium.java_client.remote.AppiumNewSessionCommandPayload; import io.appium.java_client.remote.MobileCapabilityType; @@ -122,20 +124,52 @@ public AppiumDriver(Capabilities desiredCapabilities) { } /** - * Changes platform name if it is not set and returns new capabilities. + * Changes platform name if it is not set and returns merged capabilities. * * @param originalCapabilities the given {@link Capabilities}. * @param defaultName a {@link MobileCapabilityType#PLATFORM_NAME} value which has * to be set up * @return {@link Capabilities} with changed mobile platform name value or the original capabilities */ - protected static Capabilities updateDefaultPlatformName(Capabilities originalCapabilities, - String defaultName) { - return originalCapabilities.getCapability(PLATFORM_NAME) == null + protected static Capabilities ensurePlatformName(Capabilities originalCapabilities, + String defaultName) { + String currentName = (String) originalCapabilities.getCapability(PLATFORM_NAME); + return isBlank(currentName) ? originalCapabilities.merge(new ImmutableCapabilities(PLATFORM_NAME, defaultName)) : originalCapabilities; } + /** + * Changes platform and automation names if they are not set + * and returns merged capabilities. + * + * @param originalCapabilities the given {@link Capabilities}. + * @param defaultPlatformName a {@link MobileCapabilityType#PLATFORM_NAME} value which has + * to be set up + * @param defaultAutomationName The default automation name to set up for this class + * @return {@link Capabilities} with changed mobile platform name value or the original capabilities + */ + protected static Capabilities ensurePlatformAndAutomationNames( + Capabilities originalCapabilities, String defaultPlatformName, String defaultAutomationName) { + MutableCapabilities toMerge = new MutableCapabilities(); + String currentPlatformName = (String) originalCapabilities.getCapability(PLATFORM_NAME); + if (isBlank(currentPlatformName)) { + toMerge.setCapability(PLATFORM_NAME, defaultPlatformName); + } + String currentAutomationName = CapabilityHelpers.getCapability( + originalCapabilities, MobileCapabilityType.AUTOMATION_NAME, String.class); + if (isBlank(currentAutomationName)) { + toMerge.setCapability(originalCapabilities.getCapabilityNames() + .contains(MobileCapabilityType.AUTOMATION_NAME) + ? MobileCapabilityType.AUTOMATION_NAME + : APPIUM_PREFIX + MobileCapabilityType.AUTOMATION_NAME, + defaultAutomationName); + } + return toMerge.getCapabilityNames().isEmpty() + ? originalCapabilities + : originalCapabilities.merge(toMerge); + } + @Override public ExecuteMethod getExecuteMethod() { return executeMethod; diff --git a/src/main/java/io/appium/java_client/android/AndroidDriver.java b/src/main/java/io/appium/java_client/android/AndroidDriver.java index 50280c161..5ad9001c4 100644 --- a/src/main/java/io/appium/java_client/android/AndroidDriver.java +++ b/src/main/java/io/appium/java_client/android/AndroidDriver.java @@ -38,7 +38,6 @@ import io.appium.java_client.android.geolocation.SupportsExtendedGeolocationCommands; import io.appium.java_client.android.nativekey.PressesKey; import io.appium.java_client.battery.HasBattery; -import io.appium.java_client.remote.MobilePlatform; import io.appium.java_client.remote.SupportsContextSwitching; import io.appium.java_client.remote.SupportsLocation; import io.appium.java_client.remote.SupportsRotation; @@ -47,6 +46,7 @@ import io.appium.java_client.service.local.AppiumServiceBuilder; import io.appium.java_client.ws.StringWebSocketClient; import org.openqa.selenium.Capabilities; +import org.openqa.selenium.Platform; import org.openqa.selenium.remote.HttpCommandExecutor; import org.openqa.selenium.remote.html5.RemoteLocationContext; import org.openqa.selenium.remote.http.HttpClient; @@ -87,8 +87,7 @@ public class AndroidDriver extends AppiumDriver implements ExecuteCDPCommand, CanReplaceElementValue, SupportsExtendedGeolocationCommands { - - private static final String ANDROID_PLATFORM = MobilePlatform.ANDROID; + private static final String ANDROID_PLATFORM = Platform.ANDROID.name(); private StringWebSocketClient logcatClient; @@ -101,17 +100,17 @@ public class AndroidDriver extends AppiumDriver implements * @param capabilities take a look at {@link Capabilities} */ public AndroidDriver(HttpCommandExecutor executor, Capabilities capabilities) { - super(executor, updateDefaultPlatformName(capabilities, ANDROID_PLATFORM)); + super(executor, ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** * Creates a new instance based on Appium server URL and {@code capabilities}. * * @param remoteAddress is the address of remotely/locally started Appium server - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public AndroidDriver(URL remoteAddress, Capabilities desiredCapabilities) { - super(remoteAddress, updateDefaultPlatformName(desiredCapabilities, ANDROID_PLATFORM)); + public AndroidDriver(URL remoteAddress, Capabilities capabilities) { + super(remoteAddress, ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** @@ -119,22 +118,21 @@ public AndroidDriver(URL remoteAddress, Capabilities desiredCapabilities) { * * @param remoteAddress is the address of remotely/locally started Appium server * @param httpClientFactory take a look at {@link HttpClient.Factory} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public AndroidDriver(URL remoteAddress, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(remoteAddress, httpClientFactory, - updateDefaultPlatformName(desiredCapabilities, ANDROID_PLATFORM)); + public AndroidDriver( + URL remoteAddress, HttpClient.Factory httpClientFactory, Capabilities capabilities) { + super(remoteAddress, httpClientFactory, ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** * Creates a new instance based on Appium driver local service and {@code capabilities}. * * @param service take a look at {@link AppiumDriverLocalService} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public AndroidDriver(AppiumDriverLocalService service, Capabilities desiredCapabilities) { - super(service, updateDefaultPlatformName(desiredCapabilities, ANDROID_PLATFORM)); + public AndroidDriver(AppiumDriverLocalService service, Capabilities capabilities) { + super(service, ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** @@ -142,22 +140,21 @@ public AndroidDriver(AppiumDriverLocalService service, Capabilities desiredCapab * * @param service take a look at {@link AppiumDriverLocalService} * @param httpClientFactory take a look at {@link HttpClient.Factory} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public AndroidDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(service, httpClientFactory, - updateDefaultPlatformName(desiredCapabilities, ANDROID_PLATFORM)); + public AndroidDriver( + AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, Capabilities capabilities) { + super(service, httpClientFactory, ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** * Creates a new instance based on Appium service builder and {@code capabilities}. * * @param builder take a look at {@link AppiumServiceBuilder} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public AndroidDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) { - super(builder, updateDefaultPlatformName(desiredCapabilities, ANDROID_PLATFORM)); + public AndroidDriver(AppiumServiceBuilder builder, Capabilities capabilities) { + super(builder, ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** @@ -165,31 +162,30 @@ public AndroidDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilit * * @param builder take a look at {@link AppiumServiceBuilder} * @param httpClientFactory take a look at {@link HttpClient.Factory} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ public AndroidDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(builder, httpClientFactory, - updateDefaultPlatformName(desiredCapabilities, ANDROID_PLATFORM)); + Capabilities capabilities) { + super(builder, httpClientFactory, ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** * Creates a new instance based on HTTP client factory and {@code capabilities}. * * @param httpClientFactory take a look at {@link HttpClient.Factory} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public AndroidDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) { - super(httpClientFactory, updateDefaultPlatformName(desiredCapabilities, ANDROID_PLATFORM)); + public AndroidDriver(HttpClient.Factory httpClientFactory, Capabilities capabilities) { + super(httpClientFactory, ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** * Creates a new instance based on {@code capabilities}. * - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public AndroidDriver(Capabilities desiredCapabilities) { - super(updateDefaultPlatformName(desiredCapabilities, ANDROID_PLATFORM)); + public AndroidDriver(Capabilities capabilities) { + super(ensurePlatformName(capabilities, ANDROID_PLATFORM)); } /** diff --git a/src/main/java/io/appium/java_client/ios/IOSDriver.java b/src/main/java/io/appium/java_client/ios/IOSDriver.java index 70fe3c46d..771474fb6 100644 --- a/src/main/java/io/appium/java_client/ios/IOSDriver.java +++ b/src/main/java/io/appium/java_client/ios/IOSDriver.java @@ -32,7 +32,6 @@ import io.appium.java_client.LocksDevice; import io.appium.java_client.PerformsTouchActions; import io.appium.java_client.battery.HasBattery; -import io.appium.java_client.remote.MobilePlatform; import io.appium.java_client.remote.SupportsContextSwitching; import io.appium.java_client.remote.SupportsLocation; import io.appium.java_client.remote.SupportsRotation; @@ -42,6 +41,7 @@ import io.appium.java_client.ws.StringWebSocketClient; import org.openqa.selenium.Alert; import org.openqa.selenium.Capabilities; +import org.openqa.selenium.Platform; import org.openqa.selenium.remote.DriverCommand; import org.openqa.selenium.remote.HttpCommandExecutor; import org.openqa.selenium.remote.Response; @@ -77,8 +77,7 @@ public class IOSDriver extends AppiumDriver implements HasIOSClipboard, ListensToSyslogMessages, HasBattery { - - private static final String IOS_DEFAULT_PLATFORM = MobilePlatform.IOS; + private static final String PLATFORM_NAME = Platform.IOS.name(); private StringWebSocketClient syslogClient; @@ -91,17 +90,17 @@ public class IOSDriver extends AppiumDriver implements * @param capabilities take a look at {@link Capabilities} */ public IOSDriver(HttpCommandExecutor executor, Capabilities capabilities) { - super(executor, updateDefaultPlatformName(capabilities, IOS_DEFAULT_PLATFORM)); + super(executor, ensurePlatformName(capabilities, PLATFORM_NAME)); } /** * Creates a new instance based on Appium server URL and {@code capabilities}. * * @param remoteAddress is the address of remotely/locally started Appium server - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public IOSDriver(URL remoteAddress, Capabilities desiredCapabilities) { - super(remoteAddress, updateDefaultPlatformName(desiredCapabilities, IOS_DEFAULT_PLATFORM)); + public IOSDriver(URL remoteAddress, Capabilities capabilities) { + super(remoteAddress, ensurePlatformName(capabilities, PLATFORM_NAME)); } /** @@ -109,22 +108,21 @@ public IOSDriver(URL remoteAddress, Capabilities desiredCapabilities) { * * @param remoteAddress is the address of remotely/locally started Appium server * @param httpClientFactory take a look at {@link HttpClient.Factory} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ public IOSDriver(URL remoteAddress, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(remoteAddress, httpClientFactory, - updateDefaultPlatformName(desiredCapabilities, IOS_DEFAULT_PLATFORM)); + Capabilities capabilities) { + super(remoteAddress, httpClientFactory, ensurePlatformName(capabilities, PLATFORM_NAME)); } /** * Creates a new instance based on Appium driver local service and {@code capabilities}. * * @param service take a look at {@link AppiumDriverLocalService} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public IOSDriver(AppiumDriverLocalService service, Capabilities desiredCapabilities) { - super(service, updateDefaultPlatformName(desiredCapabilities, IOS_DEFAULT_PLATFORM)); + public IOSDriver(AppiumDriverLocalService service, Capabilities capabilities) { + super(service, ensurePlatformName(capabilities, PLATFORM_NAME)); } /** @@ -132,21 +130,21 @@ public IOSDriver(AppiumDriverLocalService service, Capabilities desiredCapabilit * * @param service take a look at {@link AppiumDriverLocalService} * @param httpClientFactory take a look at {@link HttpClient.Factory} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ public IOSDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(service, httpClientFactory, updateDefaultPlatformName(desiredCapabilities, IOS_DEFAULT_PLATFORM)); + Capabilities capabilities) { + super(service, httpClientFactory, ensurePlatformName(capabilities, PLATFORM_NAME)); } /** * Creates a new instance based on Appium service builder and {@code capabilities}. * * @param builder take a look at {@link AppiumServiceBuilder} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public IOSDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) { - super(builder, updateDefaultPlatformName(desiredCapabilities, IOS_DEFAULT_PLATFORM)); + public IOSDriver(AppiumServiceBuilder builder, Capabilities capabilities) { + super(builder, ensurePlatformName(capabilities, PLATFORM_NAME)); } /** @@ -154,31 +152,30 @@ public IOSDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) * * @param builder take a look at {@link AppiumServiceBuilder} * @param httpClientFactory take a look at {@link HttpClient.Factory} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ public IOSDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(builder, httpClientFactory, - updateDefaultPlatformName(desiredCapabilities, IOS_DEFAULT_PLATFORM)); + Capabilities capabilities) { + super(builder, httpClientFactory, ensurePlatformName(capabilities, PLATFORM_NAME)); } /** * Creates a new instance based on HTTP client factory and {@code capabilities}. * * @param httpClientFactory take a look at {@link HttpClient.Factory} - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public IOSDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) { - super(httpClientFactory, updateDefaultPlatformName(desiredCapabilities, IOS_DEFAULT_PLATFORM)); + public IOSDriver(HttpClient.Factory httpClientFactory, Capabilities capabilities) { + super(httpClientFactory, ensurePlatformName(capabilities, PLATFORM_NAME)); } /** * Creates a new instance based on {@code capabilities}. * - * @param desiredCapabilities take a look at {@link Capabilities} + * @param capabilities take a look at {@link Capabilities} */ - public IOSDriver(Capabilities desiredCapabilities) { - super(updateDefaultPlatformName(desiredCapabilities, IOS_DEFAULT_PLATFORM)); + public IOSDriver(Capabilities capabilities) { + super(ensurePlatformName(capabilities, PLATFORM_NAME)); } @Override public TargetLocator switchTo() { diff --git a/src/main/java/io/appium/java_client/mac/Mac2Driver.java b/src/main/java/io/appium/java_client/mac/Mac2Driver.java index 9ad2b368c..56a309a88 100644 --- a/src/main/java/io/appium/java_client/mac/Mac2Driver.java +++ b/src/main/java/io/appium/java_client/mac/Mac2Driver.java @@ -17,22 +17,17 @@ package io.appium.java_client.mac; import io.appium.java_client.AppiumDriver; -import io.appium.java_client.internal.CapabilityHelpers; import io.appium.java_client.remote.AutomationName; -import io.appium.java_client.remote.MobileCapabilityType; import io.appium.java_client.screenrecording.CanRecordScreen; import io.appium.java_client.service.local.AppiumDriverLocalService; import io.appium.java_client.service.local.AppiumServiceBuilder; import org.openqa.selenium.Capabilities; -import org.openqa.selenium.ImmutableCapabilities; +import org.openqa.selenium.Platform; import org.openqa.selenium.remote.HttpCommandExecutor; import org.openqa.selenium.remote.http.HttpClient; import java.net.URL; -import static io.appium.java_client.remote.MobilePlatform.MAC; -import static org.openqa.selenium.remote.CapabilityType.PLATFORM_NAME; - /** * Mac2Driver is an officially supported Appium driver * created to automate Mac OS apps. The driver uses W3C @@ -44,53 +39,50 @@ */ public class Mac2Driver extends AppiumDriver implements CanRecordScreen { + private static final String PLATFORM_NAME = Platform.MAC.name(); + private static final String AUTOMATION_NAME = AutomationName.MAC2; + public Mac2Driver(HttpCommandExecutor executor, Capabilities capabilities) { - super(executor, prepareCaps(capabilities)); + super(executor, ensurePlatformAndAutomationNames(capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } - public Mac2Driver(URL remoteAddress, Capabilities desiredCapabilities) { - super(remoteAddress, prepareCaps(desiredCapabilities)); + public Mac2Driver(URL remoteAddress, Capabilities capabilities) { + super(remoteAddress, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } - public Mac2Driver(URL remoteAddress, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) { - super(remoteAddress, httpClientFactory, prepareCaps(desiredCapabilities)); + public Mac2Driver(URL remoteAddress, HttpClient.Factory httpClientFactory, Capabilities capabilities) { + super(remoteAddress, httpClientFactory, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } - public Mac2Driver(AppiumDriverLocalService service, Capabilities desiredCapabilities) { - super(service, prepareCaps(desiredCapabilities)); + public Mac2Driver(AppiumDriverLocalService service, Capabilities capabilities) { + super(service, ensurePlatformAndAutomationNames(capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public Mac2Driver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(service, httpClientFactory, prepareCaps(desiredCapabilities)); + Capabilities capabilities) { + super(service, httpClientFactory, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } - public Mac2Driver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) { - super(builder, prepareCaps(desiredCapabilities)); + public Mac2Driver(AppiumServiceBuilder builder, Capabilities capabilities) { + super(builder, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public Mac2Driver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(builder, httpClientFactory, prepareCaps(desiredCapabilities)); - } - - public Mac2Driver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) { - super(httpClientFactory, prepareCaps(desiredCapabilities)); + Capabilities capabilities) { + super(builder, httpClientFactory, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } - public Mac2Driver(Capabilities desiredCapabilities) { - super(prepareCaps(desiredCapabilities)); + public Mac2Driver(HttpClient.Factory httpClientFactory, Capabilities capabilities) { + super(httpClientFactory, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } - private static Capabilities prepareCaps(Capabilities originalCaps) { - String automationName = CapabilityHelpers.getCapability(originalCaps, - MobileCapabilityType.AUTOMATION_NAME, String.class); - return (originalCaps.getCapability(PLATFORM_NAME) == null - || !AutomationName.MAC2.equalsIgnoreCase(automationName)) - ? originalCaps.merge(new ImmutableCapabilities( - PLATFORM_NAME, MAC, - MobileCapabilityType.AUTOMATION_NAME, AutomationName.MAC2 - )) - : originalCaps; + public Mac2Driver(Capabilities capabilities) { + super(ensurePlatformAndAutomationNames(capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } } diff --git a/src/main/java/io/appium/java_client/windows/WindowsDriver.java b/src/main/java/io/appium/java_client/windows/WindowsDriver.java index 032ce91cd..82548f5b7 100644 --- a/src/main/java/io/appium/java_client/windows/WindowsDriver.java +++ b/src/main/java/io/appium/java_client/windows/WindowsDriver.java @@ -24,6 +24,7 @@ import io.appium.java_client.service.local.AppiumDriverLocalService; import io.appium.java_client.service.local.AppiumServiceBuilder; import org.openqa.selenium.Capabilities; +import org.openqa.selenium.Platform; import org.openqa.selenium.remote.HttpCommandExecutor; import org.openqa.selenium.remote.http.HttpClient; @@ -33,42 +34,43 @@ public class WindowsDriver extends AppiumDriver implements PressesKeyCode, HidesKeyboardWithKeyName, CanRecordScreen { + private static final String PLATFORM_NAME = Platform.WINDOWS.name(); public WindowsDriver(HttpCommandExecutor executor, Capabilities capabilities) { - super(executor, updateDefaultPlatformName(capabilities, WINDOWS)); + super(executor, ensurePlatformName(capabilities, WINDOWS)); } - public WindowsDriver(URL remoteAddress, Capabilities desiredCapabilities) { - super(remoteAddress, updateDefaultPlatformName(desiredCapabilities, WINDOWS)); + public WindowsDriver(URL remoteAddress, Capabilities capabilities) { + super(remoteAddress, ensurePlatformName(capabilities, WINDOWS)); } - public WindowsDriver(URL remoteAddress, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) { - super(remoteAddress, httpClientFactory, updateDefaultPlatformName(desiredCapabilities, WINDOWS)); + public WindowsDriver(URL remoteAddress, HttpClient.Factory httpClientFactory, Capabilities capabilities) { + super(remoteAddress, httpClientFactory, ensurePlatformName(capabilities, WINDOWS)); } - public WindowsDriver(AppiumDriverLocalService service, Capabilities desiredCapabilities) { - super(service, updateDefaultPlatformName(desiredCapabilities, WINDOWS)); + public WindowsDriver(AppiumDriverLocalService service, Capabilities capabilities) { + super(service, ensurePlatformName(capabilities, WINDOWS)); } public WindowsDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(service, httpClientFactory, updateDefaultPlatformName(desiredCapabilities, WINDOWS)); + Capabilities capabilities) { + super(service, httpClientFactory, ensurePlatformName(capabilities, WINDOWS)); } - public WindowsDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) { - super(builder, updateDefaultPlatformName(desiredCapabilities, WINDOWS)); + public WindowsDriver(AppiumServiceBuilder builder, Capabilities capabilities) { + super(builder, ensurePlatformName(capabilities, WINDOWS)); } public WindowsDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - super(builder, httpClientFactory, updateDefaultPlatformName(desiredCapabilities, WINDOWS)); + Capabilities capabilities) { + super(builder, httpClientFactory, ensurePlatformName(capabilities, WINDOWS)); } - public WindowsDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) { - super(httpClientFactory, updateDefaultPlatformName(desiredCapabilities, WINDOWS)); + public WindowsDriver(HttpClient.Factory httpClientFactory, Capabilities capabilities) { + super(httpClientFactory, ensurePlatformName(capabilities, WINDOWS)); } - public WindowsDriver(Capabilities desiredCapabilities) { - super(updateDefaultPlatformName(desiredCapabilities, WINDOWS)); + public WindowsDriver(Capabilities capabilities) { + super(ensurePlatformName(capabilities, WINDOWS)); } } From 243dcfdd51ac28f46c08c56fc295e8dec393880c Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Sun, 31 Oct 2021 17:32:08 +0100 Subject: [PATCH 2/3] Rename to capabilities --- .../io/appium/java_client/AppiumDriver.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/io/appium/java_client/AppiumDriver.java b/src/main/java/io/appium/java_client/AppiumDriver.java index f7fa135c9..ba932c959 100644 --- a/src/main/java/io/appium/java_client/AppiumDriver.java +++ b/src/main/java/io/appium/java_client/AppiumDriver.java @@ -83,44 +83,44 @@ public AppiumDriver(HttpCommandExecutor executor, Capabilities capabilities) { this.remoteAddress = executor.getAddressOfRemoteServer(); } - public AppiumDriver(URL remoteAddress, Capabilities desiredCapabilities) { + public AppiumDriver(URL remoteAddress, Capabilities capabilities) { this(new AppiumCommandExecutor(MobileCommand.commandRepository, remoteAddress), - desiredCapabilities); + capabilities); } public AppiumDriver(URL remoteAddress, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { + Capabilities capabilities) { this(new AppiumCommandExecutor(MobileCommand.commandRepository, remoteAddress, - httpClientFactory), desiredCapabilities); + httpClientFactory), capabilities); } - public AppiumDriver(AppiumDriverLocalService service, Capabilities desiredCapabilities) { + public AppiumDriver(AppiumDriverLocalService service, Capabilities capabilities) { this(new AppiumCommandExecutor(MobileCommand.commandRepository, service), - desiredCapabilities); + capabilities); } public AppiumDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { + Capabilities capabilities) { this(new AppiumCommandExecutor(MobileCommand.commandRepository, service, httpClientFactory), - desiredCapabilities); + capabilities); } - public AppiumDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) { - this(builder.build(), desiredCapabilities); + public AppiumDriver(AppiumServiceBuilder builder, Capabilities capabilities) { + this(builder.build(), capabilities); } public AppiumDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, - Capabilities desiredCapabilities) { - this(builder.build(), httpClientFactory, desiredCapabilities); + Capabilities capabilities) { + this(builder.build(), httpClientFactory, capabilities); } - public AppiumDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) { + public AppiumDriver(HttpClient.Factory httpClientFactory, Capabilities capabilities) { this(AppiumDriverLocalService.buildDefaultService(), httpClientFactory, - desiredCapabilities); + capabilities); } - public AppiumDriver(Capabilities desiredCapabilities) { - this(AppiumDriverLocalService.buildDefaultService(), desiredCapabilities); + public AppiumDriver(Capabilities capabilities) { + this(AppiumDriverLocalService.buildDefaultService(), capabilities); } /** From 5d409b33e378593684140fb1ecf40b7660609e38 Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Sun, 31 Oct 2021 17:36:37 +0100 Subject: [PATCH 3/3] Update Windows driver setup --- .../java_client/windows/WindowsDriver.java | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/io/appium/java_client/windows/WindowsDriver.java b/src/main/java/io/appium/java_client/windows/WindowsDriver.java index 82548f5b7..5cb449d8b 100644 --- a/src/main/java/io/appium/java_client/windows/WindowsDriver.java +++ b/src/main/java/io/appium/java_client/windows/WindowsDriver.java @@ -16,10 +16,9 @@ package io.appium.java_client.windows; -import static io.appium.java_client.remote.MobilePlatform.WINDOWS; - import io.appium.java_client.AppiumDriver; import io.appium.java_client.HidesKeyboardWithKeyName; +import io.appium.java_client.remote.AutomationName; import io.appium.java_client.screenrecording.CanRecordScreen; import io.appium.java_client.service.local.AppiumDriverLocalService; import io.appium.java_client.service.local.AppiumServiceBuilder; @@ -35,42 +34,48 @@ public class WindowsDriver extends AppiumDriver implements HidesKeyboardWithKeyName, CanRecordScreen { private static final String PLATFORM_NAME = Platform.WINDOWS.name(); + private static final String AUTOMATION_NAME = AutomationName.WINDOWS; public WindowsDriver(HttpCommandExecutor executor, Capabilities capabilities) { - super(executor, ensurePlatformName(capabilities, WINDOWS)); + super(executor, ensurePlatformAndAutomationNames(capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public WindowsDriver(URL remoteAddress, Capabilities capabilities) { - super(remoteAddress, ensurePlatformName(capabilities, WINDOWS)); + super(remoteAddress, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public WindowsDriver(URL remoteAddress, HttpClient.Factory httpClientFactory, Capabilities capabilities) { - super(remoteAddress, httpClientFactory, ensurePlatformName(capabilities, WINDOWS)); + super(remoteAddress, httpClientFactory, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public WindowsDriver(AppiumDriverLocalService service, Capabilities capabilities) { - super(service, ensurePlatformName(capabilities, WINDOWS)); + super(service, ensurePlatformAndAutomationNames(capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public WindowsDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, Capabilities capabilities) { - super(service, httpClientFactory, ensurePlatformName(capabilities, WINDOWS)); + super(service, httpClientFactory, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public WindowsDriver(AppiumServiceBuilder builder, Capabilities capabilities) { - super(builder, ensurePlatformName(capabilities, WINDOWS)); + super(builder, ensurePlatformAndAutomationNames(capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public WindowsDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, Capabilities capabilities) { - super(builder, httpClientFactory, ensurePlatformName(capabilities, WINDOWS)); + super(builder, httpClientFactory, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public WindowsDriver(HttpClient.Factory httpClientFactory, Capabilities capabilities) { - super(httpClientFactory, ensurePlatformName(capabilities, WINDOWS)); + super(httpClientFactory, ensurePlatformAndAutomationNames( + capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } public WindowsDriver(Capabilities capabilities) { - super(ensurePlatformName(capabilities, WINDOWS)); + super(ensurePlatformAndAutomationNames(capabilities, PLATFORM_NAME, AUTOMATION_NAME)); } }