diff --git a/src/main/java/io/appium/java_client/AppiumDriver.java b/src/main/java/io/appium/java_client/AppiumDriver.java index 784bad5c6..7ac1b878e 100644 --- a/src/main/java/io/appium/java_client/AppiumDriver.java +++ b/src/main/java/io/appium/java_client/AppiumDriver.java @@ -18,8 +18,10 @@ package io.appium.java_client; import static com.google.common.base.Preconditions.checkNotNull; + import static io.appium.java_client.MobileCommand.CLOSE_APP; import static io.appium.java_client.MobileCommand.GET_DEVICE_TIME; +import static io.appium.java_client.MobileCommand.GET_SESSION; import static io.appium.java_client.MobileCommand.GET_SETTINGS; import static io.appium.java_client.MobileCommand.GET_STRINGS; import static io.appium.java_client.MobileCommand.HIDE_KEYBOARD; @@ -682,4 +684,13 @@ private TouchAction createTap(int x, int y, int duration) { public URL getRemoteAddress() { return remoteAddress; } + + /** + * @return a map with values that hold session details. + * + */ + public Map getSessionDetails() { + Response response = execute(GET_SESSION); + return (Map) response.getValue(); + } } diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index dc0125701..dcd7f2000 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -62,6 +62,7 @@ public class MobileCommand { public static final String TOGGLE_LOCATION_SERVICES = "toggleLocationServices"; public static final String GET_DEVICE_TIME = "getDeviceTime"; public static final String UNLOCK = "unlock"; + public static final String GET_SESSION = "getSession"; public static final Map commandRepository = getMobileCommands(); public static CommandInfo getC(String url) { @@ -111,7 +112,8 @@ private static Map getMobileCommands() { .put(TOGGLE_LOCATION_SERVICES, postC("/session/:sessionId/appium/device/toggle_location_services")) .put(GET_DEVICE_TIME, getC("/session/:sessionId/appium/device/system_time")) - .put(UNLOCK, postC("/session/:sessionId/appium/device/unlock")); + .put(UNLOCK, postC("/session/:sessionId/appium/device/unlock")) + .put(GET_SESSION,getC("/session/:sessionId/")); return builder.build(); } diff --git a/src/test/java/io/appium/java_client/android/AndroidDriverTest.java b/src/test/java/io/appium/java_client/android/AndroidDriverTest.java index 3d76b0832..0dfc88f6b 100644 --- a/src/test/java/io/appium/java_client/android/AndroidDriverTest.java +++ b/src/test/java/io/appium/java_client/android/AndroidDriverTest.java @@ -18,8 +18,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; + import io.appium.java_client.AppiumSetting; import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.FileUtils; @@ -134,4 +136,9 @@ public class AndroidDriverTest extends BaseAndroidTest { @Test public void endTestCoverage() { driver.endTestCoverage("android.intent.action.MAIN", ""); } + + @Test public void getDeviceUDIDTest() { + String deviceSerial = driver.getSessionDetails().get("deviceUDID"); + assertNotNull(deviceSerial); + } }