From cd05c36250e39905cc6fb6bfe24153d88c54676f Mon Sep 17 00:00:00 2001 From: jummp01 Date: Fri, 3 Feb 2017 14:33:32 +0000 Subject: [PATCH] Skype: implement ApplaunchInterface Adapts skype workload to support applaunch workload by implementing the required methods of the interface. Tested on Huawei Mate8 and Samsung S7. --- .../skype/com.arm.wlauto.uiauto.skype.jar | Bin 13917 -> 14772 bytes .../com/arm/wlauto/uiauto/UiAutomation.java | 77 ++++++++++++++---- 2 files changed, 61 insertions(+), 16 deletions(-) diff --git a/wlauto/workloads/skype/com.arm.wlauto.uiauto.skype.jar b/wlauto/workloads/skype/com.arm.wlauto.uiauto.skype.jar index 34ba170c296364341401ce718bb5c812c6f897ce..2f764bdc48253be7f3ccccf3277a46250cdca81f 100644 GIT binary patch delta 14568 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

P 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 L?^V2rfbjnS$0Zg6 delta 13706 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 diff --git a/wlauto/workloads/skype/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java b/wlauto/workloads/skype/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java index 5fa5a30c..1fc763f9 100755 --- a/wlauto/workloads/skype/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java +++ b/wlauto/workloads/skype/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java @@ -24,6 +24,8 @@ import com.android.uiautomator.core.UiSelector; import com.android.uiautomator.core.UiWatcher; import com.arm.wlauto.uiauto.UxPerfUiAutomation; +import com.arm.wlauto.uiauto.ApplaunchInterface; +import com.arm.wlauto.uiauto.UiAutoUtils; import static com.arm.wlauto.uiauto.BaseUiAutomation.FindByCriteria.BY_ID; import static com.arm.wlauto.uiauto.BaseUiAutomation.FindByCriteria.BY_TEXT; @@ -31,39 +33,26 @@ import static com.arm.wlauto.uiauto.BaseUiAutomation.FindByCriteria.BY_DESC; import java.util.concurrent.TimeUnit; -public class UiAutomation extends UxPerfUiAutomation { - - public Bundle parameters; - public String packageName; - public String packageID; +public class UiAutomation extends UxPerfUiAutomation implements ApplaunchInterface { public static final String ACTION_VOICE = "voice"; public static final String ACTION_VIDEO = "video"; public void runUiAutomation() throws Exception { + // Override superclass value this.uiAutoTimeout = TimeUnit.SECONDS.toMillis(10); parameters = getParams(); - packageName = parameters.getString("package"); - packageID = packageName + ":id/"; - String loginName = parameters.getString("my_id"); - String loginPass = parameters.getString("my_pwd"); String contactName = parameters.getString("name").replace("0space0", " "); int callDuration = Integer.parseInt(parameters.getString("duration")); String callType = parameters.getString("action"); String resultsFile = parameters.getString("results_file"); setScreenOrientation(ScreenOrientation.NATURAL); + runApplicationInitialization(); - UiWatcher infoPopUpWatcher = createInfoPopUpWatcher(); - registerWatcher("infoPopUpWatcher", infoPopUpWatcher); - runWatchers(); - - // Run tests - handleLoginScreen(loginName, loginPass); - dismissUpdatePopupIfPresent(); searchForContact(contactName); if (ACTION_VOICE.equalsIgnoreCase(callType)) { @@ -75,6 +64,44 @@ public class UiAutomation extends UxPerfUiAutomation { removeWatcher("infoPopUpWatcher"); unsetScreenOrientation(); } + + // Get application parameters and clear the initial run dialogues of the application launch. + public void runApplicationInitialization() throws Exception { + getPackageParameters(); + String loginName = parameters.getString("my_id"); + String loginPass = parameters.getString("my_pwd"); + + UiWatcher infoPopUpWatcher = createInfoPopUpWatcher(); + registerWatcher("infoPopUpWatcher", infoPopUpWatcher); + UiWatcher nextPopUpWatcher = createNextPopUpWatcher(); + registerWatcher("nextPopUpWatcher", nextPopUpWatcher); + runWatchers(); + + // Run tests + handleLoginScreen(loginName, loginPass); + dismissUpdatePopupIfPresent(); + } + + // Sets the UiObject that marks the end of the application launch. + public UiObject getLaunchEndObject() { + UiObject launchEndObject = new UiObject(new UiSelector() + .resourceId(packageID + "menu_search")); + return launchEndObject; + } + + // Returns the launch command for the application. + public String getLaunchCommand() { + String launch_command; + String actionName = "android.intent.action.VIEW"; + String dataURI = "skype:dummy?dummy"; + launch_command = String.format("am start -a %s -d %s", actionName, dataURI); + return launch_command; + } + + // Pass the workload parameters, used for applaunch + public void setWorkloadParameters(Bundle workload_parameters) { + parameters = workload_parameters; + } public void handleLoginScreen(String username, String password) throws Exception { UiObject useridField = @@ -172,6 +199,24 @@ public class UiAutomation extends UxPerfUiAutomation { }; return infoPopUpWatcher; } + + // Creates a watcher for when a pop up dialog appears with a next button on subsequent launch. + private UiWatcher createNextPopUpWatcher() throws Exception { + UiWatcher nextPopUpWatcher = new UiWatcher() { + @Override + public boolean checkForCondition() { + UiObject nextButton = + new UiObject(new UiSelector().resourceId(packageID + "next_button")); + + if (nextButton.exists()) { + pressBack(); + return nextButton.waitUntilGone(TimeUnit.SECONDS.toMillis(100)); + } + return false; + } + }; + return nextPopUpWatcher; + } private void makeCall(int duration, boolean video) throws Exception { String testTag = video ? "video" : "voice";