From 3df7d5267027c17c679a5dccb9267dddc1da92e2 Mon Sep 17 00:00:00 2001 From: Sai Krishna Date: Mon, 6 Jun 2016 16:45:40 +0530 Subject: [PATCH 1/3] added getSession api to fetch deviceUDID --- .../io/appium/java_client/AppiumDriver.java | 10 ++++ .../io/appium/java_client/MobileCommand.java | 4 +- .../android/GetSessionDetailsTest.java | 58 +++++++++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 src/test/java/io/appium/java_client/android/GetSessionDetailsTest.java diff --git a/src/main/java/io/appium/java_client/AppiumDriver.java b/src/main/java/io/appium/java_client/AppiumDriver.java index 784bad5c6..2ee2be50f 100644 --- a/src/main/java/io/appium/java_client/AppiumDriver.java +++ b/src/main/java/io/appium/java_client/AppiumDriver.java @@ -33,6 +33,7 @@ import static io.appium.java_client.MobileCommand.REMOVE_APP; import static io.appium.java_client.MobileCommand.RUN_APP_IN_BACKGROUND; import static io.appium.java_client.MobileCommand.SET_SETTINGS; +import static io.appium.java_client.MobileCommand.GET_SESSION; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -682,4 +683,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/GetSessionDetailsTest.java b/src/test/java/io/appium/java_client/android/GetSessionDetailsTest.java new file mode 100644 index 000000000..dc6cd3ee4 --- /dev/null +++ b/src/test/java/io/appium/java_client/android/GetSessionDetailsTest.java @@ -0,0 +1,58 @@ +package io.appium.java_client.android; + +import static org.junit.Assert.assertNotNull; + +import io.appium.java_client.remote.MobileCapabilityType; +import io.appium.java_client.service.local.AppiumDriverLocalService; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.remote.DesiredCapabilities; + +import java.io.File; + +/** + * Created by saikrisv on 03/06/16. + */ +public class GetSessionDetailsTest { + public static AppiumDriverLocalService service; + protected static AndroidDriver driver; + + /** + * initialization. + */ + @BeforeClass public static void beforeClass() throws Exception { + service = AppiumDriverLocalService.buildDefaultService(); + service.start(); + + if (service == null || !service.isRunning()) { + throw new RuntimeException("An appium server node is not started!"); + } + + File appDir = new File("src/test/java/io/appium/java_client"); + File app = new File(appDir, "IntentExample.apk"); + DesiredCapabilities capabilities = new DesiredCapabilities(); + capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator"); + capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); + driver = new AndroidDriver<>(service.getUrl(), capabilities); + } + + /** + * finishing. + */ + @AfterClass public static void afterClass() { + if (driver != null) { + driver.quit(); + } + if (service != null) { + service.stop(); + } + } + + + @Test public void getDeviceUDIDTest() { + String deviceSerial = driver.getSessionDetails().get("deviceUDID"); + assertNotNull(deviceSerial); + } + +} From 01bf718099ad622242c9ada78f3979916bc7af7e Mon Sep 17 00:00:00 2001 From: Sai Krishna Date: Tue, 7 Jun 2016 10:46:35 +0530 Subject: [PATCH 2/3] moved getDevicUDIDTest to AndroidDriverTest and fixed import style check --- .../io/appium/java_client/AppiumDriver.java | 3 +- .../android/AndroidDriverTest.java | 9 ++- .../android/GetSessionDetailsTest.java | 58 ------------------- 3 files changed, 9 insertions(+), 61 deletions(-) delete mode 100644 src/test/java/io/appium/java_client/android/GetSessionDetailsTest.java diff --git a/src/main/java/io/appium/java_client/AppiumDriver.java b/src/main/java/io/appium/java_client/AppiumDriver.java index 2ee2be50f..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; @@ -33,7 +35,6 @@ import static io.appium.java_client.MobileCommand.REMOVE_APP; import static io.appium.java_client.MobileCommand.RUN_APP_IN_BACKGROUND; import static io.appium.java_client.MobileCommand.SET_SETTINGS; -import static io.appium.java_client.MobileCommand.GET_SESSION; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; 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..509c2d7ba 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; @@ -27,8 +29,6 @@ import org.openqa.selenium.ScreenOrientation; import org.openqa.selenium.html5.Location; -import java.io.File; - public class AndroidDriverTest extends BaseAndroidTest { @Test public void getDeviceTimeTest() { @@ -134,4 +134,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); + } } diff --git a/src/test/java/io/appium/java_client/android/GetSessionDetailsTest.java b/src/test/java/io/appium/java_client/android/GetSessionDetailsTest.java deleted file mode 100644 index dc6cd3ee4..000000000 --- a/src/test/java/io/appium/java_client/android/GetSessionDetailsTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package io.appium.java_client.android; - -import static org.junit.Assert.assertNotNull; - -import io.appium.java_client.remote.MobileCapabilityType; -import io.appium.java_client.service.local.AppiumDriverLocalService; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.openqa.selenium.remote.DesiredCapabilities; - -import java.io.File; - -/** - * Created by saikrisv on 03/06/16. - */ -public class GetSessionDetailsTest { - public static AppiumDriverLocalService service; - protected static AndroidDriver driver; - - /** - * initialization. - */ - @BeforeClass public static void beforeClass() throws Exception { - service = AppiumDriverLocalService.buildDefaultService(); - service.start(); - - if (service == null || !service.isRunning()) { - throw new RuntimeException("An appium server node is not started!"); - } - - File appDir = new File("src/test/java/io/appium/java_client"); - File app = new File(appDir, "IntentExample.apk"); - DesiredCapabilities capabilities = new DesiredCapabilities(); - capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator"); - capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); - driver = new AndroidDriver<>(service.getUrl(), capabilities); - } - - /** - * finishing. - */ - @AfterClass public static void afterClass() { - if (driver != null) { - driver.quit(); - } - if (service != null) { - service.stop(); - } - } - - - @Test public void getDeviceUDIDTest() { - String deviceSerial = driver.getSessionDetails().get("deviceUDID"); - assertNotNull(deviceSerial); - } - -} From eed919a5b3b21bd3fbe99a82df83d6b71f233302 Mon Sep 17 00:00:00 2001 From: Sai Krishna Date: Tue, 7 Jun 2016 12:13:00 +0530 Subject: [PATCH 3/3] fixed missing imports --- .../java/io/appium/java_client/android/AndroidDriverTest.java | 2 ++ 1 file changed, 2 insertions(+) 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 509c2d7ba..0dfc88f6b 100644 --- a/src/test/java/io/appium/java_client/android/AndroidDriverTest.java +++ b/src/test/java/io/appium/java_client/android/AndroidDriverTest.java @@ -29,6 +29,8 @@ import org.openqa.selenium.ScreenOrientation; import org.openqa.selenium.html5.Location; +import java.io.File; + public class AndroidDriverTest extends BaseAndroidTest { @Test public void getDeviceTimeTest() {