diff --git a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java index cc1c77ad5..b1e24bbf3 100644 --- a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java +++ b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java @@ -94,10 +94,23 @@ public static AppiumDriverLocalService buildService(AppiumServiceBuilder builder } public AppiumDriverLocalService withBasePath(String basePath) { - this.basePath = basePath; + this.basePath = sanitizeBasePath(basePath); return this; } + @SneakyThrows private static String sanitizeBasePath(String basePath) { + if (null == basePath) { + LOG.warn("Base Path cannot be NULL -- ignoring the basepath configuration"); + return null; + } + basePath = basePath.trim(); + if (basePath.isBlank() || basePath.isEmpty()) { + LOG.warn("Base Path cannot be Empty or Blank -- ignoring the basepath configuration"); + return null; + } + return (basePath.endsWith("/") ? basePath : basePath + "/"); + } + public String getBasePath() { return this.basePath; } diff --git a/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java b/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java index 7db741cdd..fd075e976 100644 --- a/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java +++ b/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java @@ -6,6 +6,7 @@ import static io.appium.java_client.service.local.AppiumServiceBuilder.APPIUM_PATH; import static io.appium.java_client.service.local.flags.GeneralServerFlag.CALLBACK_ADDRESS; import static io.appium.java_client.service.local.flags.GeneralServerFlag.SESSION_OVERRIDE; +import static io.appium.java_client.service.local.flags.GeneralServerFlag.BASEPATH; import static io.github.bonigarcia.wdm.WebDriverManager.chromedriver; import static java.lang.System.getProperty; import static java.lang.System.setProperty; @@ -312,4 +313,11 @@ public void checkAbilityToStartServiceWithLogFileUsingShortFlag() { service.start(); assertTrue(testLogFile.exists()); } + + @Test + public void checkAbilityToStartServiceUsingBasePath() { + service = new AppiumServiceBuilder().withArgument(BASEPATH, "/wd/hub").build(); + service.start(); + assertTrue(service.isRunning()); + } }