From e18366b3f82c101b9f1cc4cb140337f59fb8a639 Mon Sep 17 00:00:00 2001 From: John Richardson Date: Mon, 5 Sep 2016 15:00:36 +0100 Subject: [PATCH] Add support for chrome books to googleplaybooks workload Accommodate layout changes in googleplaybooks on chrome book devices when accessing the action bar menu in the app. --- wlauto/workloads/googleplaybooks/__init__.py | 6 +- .../com.arm.wlauto.uiauto.googleplaybooks.jar | Bin 16307 -> 16491 bytes .../com/arm/wlauto/uiauto/UiAutomation.java | 82 ++++++++++++------ 3 files changed, 56 insertions(+), 32 deletions(-) diff --git a/wlauto/workloads/googleplaybooks/__init__.py b/wlauto/workloads/googleplaybooks/__init__.py index dfe37390..31cd65cc 100755 --- a/wlauto/workloads/googleplaybooks/__init__.py +++ b/wlauto/workloads/googleplaybooks/__init__.py @@ -70,12 +70,10 @@ class Googleplaybooks(AndroidUxPerfWorkload): """), ] + requires_network = True + def validate(self): super(Googleplaybooks, self).validate() self.uiauto_params['book_title'] = self.search_book_title.replace(" ", "_") self.uiauto_params['chapter_page_number'] = self.select_chapter_page_number self.uiauto_params['search_word'] = self.search_word - - def setup(self, context): - super(Googleplaybooks, self).setup(context) - self.check_network_connected() diff --git a/wlauto/workloads/googleplaybooks/com.arm.wlauto.uiauto.googleplaybooks.jar b/wlauto/workloads/googleplaybooks/com.arm.wlauto.uiauto.googleplaybooks.jar index 065bd26e58502007db5d1aebe0921d005059795e..7091f44f28d25aa32f480a8af285c90ce30c9e23 100644 GIT binary patch delta 16284 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 delta 16099 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 WL`>}e)v71+inGBT{VQ9CfcPIM8sc04 diff --git a/wlauto/workloads/googleplaybooks/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java b/wlauto/workloads/googleplaybooks/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java index 9139d56f..95322456 100755 --- a/wlauto/workloads/googleplaybooks/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java +++ b/wlauto/workloads/googleplaybooks/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java @@ -29,6 +29,7 @@ import com.arm.wlauto.uiauto.UxPerfUiAutomation; import java.util.concurrent.TimeUnit; import java.util.LinkedHashMap; import java.util.Iterator; +import android.util.Log; import java.util.Map; import java.util.Map.Entry; @@ -179,7 +180,19 @@ public class UiAutomation extends UxPerfUiAutomation { UiScrollable searchResultsList = new UiScrollable(new UiSelector().resourceId("com.android.vending:id/search_results_list")); - searchResultsList.scrollIntoView(label); + final int maxSearchTime = 30; + int searchTime = maxSearchTime; + + while (!label.exists()) { + if (searchTime <= 0) { + throw new UiObjectNotFoundException( + "Exceeded maximum search time (" + maxSearchTime + " seconds) to find book \"" + bookTitle + "\""); + } else { + uiDeviceSwipeDown(100); + sleep(1); + searchTime--; + } + } // Click on either the first "free" or "purchased" book found that // matches the book title @@ -251,16 +264,12 @@ public class UiAutomation extends UxPerfUiAutomation { UiObject downloadComplete = new UiObject(new UiSelector().fromParent(bookSelector).description("100% downloaded")); - int maxDownloadTime = 120; // seconds + long maxWaitTimeSeconds = 120; + long maxWaitTime = TimeUnit.SECONDS.toMillis(maxWaitTimeSeconds); - while (!downloadComplete.exists()) { - if (maxDownloadTime <= 0) { + if (!downloadComplete.waitForExists(maxWaitTime)) { throw new UiObjectNotFoundException( - "Exceeded maximum wait time (" + maxDownloadTime + " seconds) to download book \"" + bookTitle + "\""); - } else { - sleep(1); - maxDownloadTime--; - } + "Exceeded maximum wait time (" + maxWaitTimeSeconds + " seconds) to download book \"" + bookTitle + "\""); } book.click(); @@ -339,8 +348,7 @@ public class UiAutomation extends UxPerfUiAutomation { private void selectChapter(final String chapterPageNumber) throws Exception { getDropdownMenu(); - UiObject contents = getUiObjectByResourceId(packageID + "menu_reader_toc", - "android.widget.TextView"); + UiObject contents = getUiObjectByResourceId(packageID + "menu_reader_toc"); contents.clickAndWaitForNewWindow(uiAutoTimeout); UiObject toChapterView = getUiObjectByResourceId(packageID + "toc_list_view", @@ -361,6 +369,8 @@ public class UiAutomation extends UxPerfUiAutomation { ActionLogger logger = new ActionLogger(testTag, parameters); logger.start(); + hideDropDownMenu(); + UiObject clickable = new UiObject(new UiSelector().longClickable(true)); uiObjectPerformLongClick(clickable, 100); @@ -460,15 +470,22 @@ public class UiAutomation extends UxPerfUiAutomation { String[] styles = {"Night", "Sepia", "Day"}; for (String style : styles) { - ActionLogger logger = new ActionLogger(testTag + "_" + style, parameters); - logger.start(); - UiObject pageStyle = new UiObject(new UiSelector().description(style)); - pageStyle.clickAndWaitForNewWindow(viewTimeout); - logger.stop(); + try { + ActionLogger logger = new ActionLogger(testTag + "_" + style, parameters); + logger.start(); + UiObject pageStyle = new UiObject(new UiSelector().description(style)); + pageStyle.clickAndWaitForNewWindow(viewTimeout); + logger.stop(); + } catch (UiObjectNotFoundException e) { + // On some devices the lighting options menu disappears + // between clicks. Searching for the menu again would affect + // the logger timings so log a message and continue + Log.e("GooglePlayBooks", "Could not find pageStyle \"" + style + "\""); + } } sleep(2); - tapDisplayCentre(); + tapDisplayCentre(); // exit reader settings dialog waitForPage(); } @@ -495,21 +512,30 @@ public class UiAutomation extends UxPerfUiAutomation { // Helper for accessing the drop down menu private void getDropdownMenu() throws Exception { - sleep(1); // Allow previous views to settle - int height = getDisplayHeight(); - int width = getDisplayCentreWidth(); - getUiDevice().swipe(width, 20, width, height / 10, 50); - - // selecting the drop down menu can be unreliable so check for its - // existence and if not present try for a second time using a different - // start point and step size UiObject actionBar = new UiObject(new UiSelector().resourceId(packageID + "action_bar")); - long actionBarTimeout = TimeUnit.SECONDS.toMillis(3); + if (!actionBar.exists()) { + tapDisplayCentre(); + sleep(1); // Allow previous views to settle + } - if (!actionBar.waitForExists(actionBarTimeout)) { - getUiDevice().swipe(width, 5, width, height / 10, 20); + if (!actionBar.exists()) { + throw new UiObjectNotFoundException("Could not find \"action bar\"."); + } + } + + private void hideDropDownMenu() throws Exception { + UiObject actionBar = + new UiObject(new UiSelector().resourceId(packageID + "action_bar")); + + if (actionBar.exists()) { + tapDisplayCentre(); + sleep(1); // Allow previous views to settle + } + + if (actionBar.exists()) { + throw new UiObjectNotFoundException("Could not close \"action bar\"."); } }