From 4e94ff9ed756e3eb3048c8c91709ace3356b31b5 Mon Sep 17 00:00:00 2001 From: Michael McGeagh Date: Wed, 28 Sep 2016 14:02:39 +0100 Subject: [PATCH] Skype CodeTidy to conform with the other workloads Dont double click if the confirm icon appears --- wlauto/workloads/skype/__init__.py | 25 +++--- .../skype/com.arm.wlauto.uiauto.skype.jar | Bin 12700 -> 12535 bytes .../com/arm/wlauto/uiauto/UiAutomation.java | 76 +++++++++--------- 3 files changed, 49 insertions(+), 52 deletions(-) diff --git a/wlauto/workloads/skype/__init__.py b/wlauto/workloads/skype/__init__.py index f84c8ec8..15e50262 100755 --- a/wlauto/workloads/skype/__init__.py +++ b/wlauto/workloads/skype/__init__.py @@ -13,13 +13,22 @@ # limitations under the License. # -import time from wlauto import AndroidUxPerfWorkload, Parameter class Skype(AndroidUxPerfWorkload): name = 'skype' + package = 'com.skype.raider' + min_apk_version = '7.01.0.669' + activity = '' # Skype has no default 'main' activity + view = [package + '/com.skype.android.app.calling.CallActivity', + package + '/com.skype.android.app.calling.PreCallActivity', + package + '/com.skype.android.app.chat.ChatActivity', + package + '/com.skype.android.app.main.HubActivity', + package + '/com.skype.android.app.main.SplashActivity', + package + '/com.skype.android.app.signin.SignInActivity', + package + '/com.skype.android.app.signin.UnifiedLandingPageActivity'] description = ''' A workload to perform standard productivity tasks within Skype. The workload logs in to the Skype application, selects a recipient from the @@ -50,17 +59,7 @@ class Skype(AndroidUxPerfWorkload): please search online for specific instructions). https://support.skype.com/en/faq/FA3751/can-i-automatically-answer-all-my-calls-with-video-in-skype-for-windows-desktop ''' - package = 'com.skype.raider' - min_apk_version = '7.01.0.669' - view = [package + '/com.skype.android.app.calling.CallActivity', - package + '/com.skype.android.app.calling.PreCallActivity', - package + '/com.skype.android.app.chat.ChatActivity', - package + '/com.skype.android.app.main.HubActivity', - package + '/com.skype.android.app.main.SplashActivity', - package + '/com.skype.android.app.signin.SignInActivity', - package + '/com.skype.android.app.signin.UnifiedLandingPageActivity'] - - activity = '' # Skype has no default 'main' activity + launch_main = False # overrides extended class parameters = [ @@ -70,7 +69,7 @@ class Skype(AndroidUxPerfWorkload): '''), Parameter('login_pass', kind=str, mandatory=True, description='Password associated with the account to log into the device'), - Parameter('contact_name', kind=str, mandatory=True, default='Echo / Sound Test Service', + Parameter('contact_name', kind=str, default='Echo / Sound Test Service', description='This is the contact display name as it appears in the people list'), Parameter('duration', kind=int, default=10, description='This is the duration of the call in seconds'), diff --git a/wlauto/workloads/skype/com.arm.wlauto.uiauto.skype.jar b/wlauto/workloads/skype/com.arm.wlauto.uiauto.skype.jar index ef1e7917d87f90e5bcf171221859248bde7fa521..842758740dff00f10867be5ad8b2ae2a2ebe5f57 100644 GIT binary patch delta 12284 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 YHAwen7yEy`2I)iWY$!AA2>-_a09=6C+yDRo 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 c845844d..1dd57b16 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 @@ -22,27 +22,32 @@ import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiObjectNotFoundException; import com.android.uiautomator.core.UiSelector; import com.android.uiautomator.core.UiWatcher; + import com.arm.wlauto.uiauto.UxPerfUiAutomation; +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_DESC; + import java.util.concurrent.TimeUnit; public class UiAutomation extends UxPerfUiAutomation { - public static final String ACTION_VOICE = "voice"; - public static final String ACTION_VIDEO = "video"; - public Bundle parameters; public String packageName; public String packageID; + 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); - // Get Params 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", " "); @@ -72,17 +77,17 @@ public class UiAutomation extends UxPerfUiAutomation { } public void handleLoginScreen(String username, String password) throws Exception { - String useridResoureId = packageID + "sign_in_userid"; - String nextButtonResourceId = packageID + "sign_in_next_btn"; - UiObject useridField = new UiObject(new UiSelector().resourceId(useridResoureId)); - UiObject nextButton = new UiObject(new UiSelector().resourceId(nextButtonResourceId)); + UiObject useridField = + new UiObject(new UiSelector().resourceId(packageID + "sign_in_userid")); + UiObject nextButton = + new UiObject(new UiSelector().resourceId(packageID + "sign_in_next_btn")); useridField.setText(username); nextButton.clickAndWaitForNewWindow(); - String passwordResoureId = packageID + "signin_password"; - String signinButtonResourceId = packageID + "sign_in_btn"; - UiObject passwordField = new UiObject(new UiSelector().resourceId(passwordResoureId)); - UiObject signinButton = new UiObject(new UiSelector().resourceId(signinButtonResourceId)); + UiObject passwordField = + new UiObject(new UiSelector().resourceId(packageID + "signin_password")); + UiObject signinButton = + new UiObject(new UiSelector().resourceId(packageID + "sign_in_btn")); passwordField.setText(password); signinButton.clickAndWaitForNewWindow(); } @@ -90,55 +95,49 @@ public class UiAutomation extends UxPerfUiAutomation { public void dismissUpdatePopupIfPresent() throws Exception { UiObject updateNotice = new UiObject(new UiSelector().resourceId(packageID + "update_notice_dont_show_again")); - //Detect if the update notice popup is present if (updateNotice.waitForExists(uiAutoTimeout)) { //Stop the notice from reappearing updateNotice.click(); - - UiObject contiuneButton = getUiObjectByText("Continue", "android.widget.Button"); - if (contiuneButton.exists()) { - contiuneButton.click(); - } + clickUiObject(BY_TEXT, "Continue", "android.widget.Button"); } } public void searchForContact(String name) throws Exception { - UiObject menuSearch = new UiObject(new UiSelector().resourceId(packageID + "menu_search")); boolean sharingResource = false; - - // If searching for a contact from Skype directly we need - // to click the menu search button to display the contact search box. + UiObject menuSearch = + new UiObject(new UiSelector().resourceId(packageID + "menu_search")); if (menuSearch.waitForExists(uiAutoTimeout)) { + // If searching for a contact from Skype directly we need + // to click the menu search button to display the contact search box. menuSearch.click(); - - // If sharing a resource from another app the contact search box is shown - // by default. } else { + // If sharing a resource from another app the contact search box is shown + // by default. sharingResource = true; } UiObject search = getUiObjectByText("Search", "android.widget.EditText"); search.setText(name); - UiObject peopleItem = getUiObjectByText(name, "android.widget.TextView"); - - peopleItem.waitForExists(uiAutoTimeout); - peopleItem.click(); + UiObject peopleItem = clickUiObject(BY_TEXT, name, "android.widget.TextView"); UiObject avatarPresence = new UiObject(new UiSelector().resourceId(packageID + "skype_avatar_presence")); + UiObject confirm = + new UiObject(new UiSelector().resourceId(packageID + "fab")); + // On some devices two clicks are needed to select a contact. if (!avatarPresence.waitUntilGone(uiAutoTimeout)) { - peopleItem.click(); + if (!sharingResource || !confirm.exists()) { + peopleItem.click(); + } } // Before sharing a resource from another app we first need to // confirm our selection. if (sharingResource) { - UiObject confirm = - new UiObject(new UiSelector().resourceId(packageID + "fab")); confirm.click(); } } @@ -158,15 +157,11 @@ public class UiAutomation extends UxPerfUiAutomation { e.printStackTrace(); } - Long viewTimeout = TimeUnit.SECONDS.toMillis(10); - boolean dismissed = dismissButton.waitUntilGone(viewTimeout); - - return dismissed; + return dismissButton.waitUntilGone(TimeUnit.SECONDS.toMillis(10)); } return false; } }; - return infoPopUpWatcher; } @@ -191,11 +186,14 @@ public class UiAutomation extends UxPerfUiAutomation { private void makeCall(int duration, boolean video, String testTag) throws Exception { String description = video ? "Video call" : "Call options"; - UiObject callButton = new UiObject(new UiSelector().descriptionContains(description)); + UiObject callButton = + new UiObject(new UiSelector().descriptionContains(description)); callButton.clickAndWaitForNewWindow(); - UiObject muteButton = new UiObject(new UiSelector().descriptionContains("Mute")); + UiObject muteButton = + new UiObject(new UiSelector().descriptionContains("Mute")); muteButton.click(); + sleep(duration); } }