mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-19 12:24:32 +00:00
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.
This commit is contained in:
parent
ae0c9fa60b
commit
cd05c36250
Binary file not shown.
@ -24,6 +24,8 @@ import com.android.uiautomator.core.UiSelector;
|
|||||||
import com.android.uiautomator.core.UiWatcher;
|
import com.android.uiautomator.core.UiWatcher;
|
||||||
|
|
||||||
import com.arm.wlauto.uiauto.UxPerfUiAutomation;
|
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_ID;
|
||||||
import static com.arm.wlauto.uiauto.BaseUiAutomation.FindByCriteria.BY_TEXT;
|
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;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class UiAutomation extends UxPerfUiAutomation {
|
public class UiAutomation extends UxPerfUiAutomation implements ApplaunchInterface {
|
||||||
|
|
||||||
public Bundle parameters;
|
|
||||||
public String packageName;
|
|
||||||
public String packageID;
|
|
||||||
|
|
||||||
public static final String ACTION_VOICE = "voice";
|
public static final String ACTION_VOICE = "voice";
|
||||||
public static final String ACTION_VIDEO = "video";
|
public static final String ACTION_VIDEO = "video";
|
||||||
|
|
||||||
public void runUiAutomation() throws Exception {
|
public void runUiAutomation() throws Exception {
|
||||||
|
|
||||||
// Override superclass value
|
// Override superclass value
|
||||||
this.uiAutoTimeout = TimeUnit.SECONDS.toMillis(10);
|
this.uiAutoTimeout = TimeUnit.SECONDS.toMillis(10);
|
||||||
|
|
||||||
parameters = getParams();
|
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", " ");
|
String contactName = parameters.getString("name").replace("0space0", " ");
|
||||||
int callDuration = Integer.parseInt(parameters.getString("duration"));
|
int callDuration = Integer.parseInt(parameters.getString("duration"));
|
||||||
String callType = parameters.getString("action");
|
String callType = parameters.getString("action");
|
||||||
String resultsFile = parameters.getString("results_file");
|
String resultsFile = parameters.getString("results_file");
|
||||||
|
|
||||||
setScreenOrientation(ScreenOrientation.NATURAL);
|
setScreenOrientation(ScreenOrientation.NATURAL);
|
||||||
|
runApplicationInitialization();
|
||||||
|
|
||||||
UiWatcher infoPopUpWatcher = createInfoPopUpWatcher();
|
|
||||||
registerWatcher("infoPopUpWatcher", infoPopUpWatcher);
|
|
||||||
runWatchers();
|
|
||||||
|
|
||||||
// Run tests
|
|
||||||
handleLoginScreen(loginName, loginPass);
|
|
||||||
dismissUpdatePopupIfPresent();
|
|
||||||
searchForContact(contactName);
|
searchForContact(contactName);
|
||||||
|
|
||||||
if (ACTION_VOICE.equalsIgnoreCase(callType)) {
|
if (ACTION_VOICE.equalsIgnoreCase(callType)) {
|
||||||
@ -75,6 +64,44 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
removeWatcher("infoPopUpWatcher");
|
removeWatcher("infoPopUpWatcher");
|
||||||
unsetScreenOrientation();
|
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 {
|
public void handleLoginScreen(String username, String password) throws Exception {
|
||||||
UiObject useridField =
|
UiObject useridField =
|
||||||
@ -172,6 +199,24 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
};
|
};
|
||||||
return infoPopUpWatcher;
|
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 {
|
private void makeCall(int duration, boolean video) throws Exception {
|
||||||
String testTag = video ? "video" : "voice";
|
String testTag = video ? "video" : "voice";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user