From 23bcadd75098bc06e2dafbe5854596f621ac76ce Mon Sep 17 00:00:00 2001 From: Marc Bonnici Date: Thu, 9 Nov 2017 16:47:40 +0000 Subject: [PATCH] Uiauto/BaseUiAutomation: Add helper function to select gallery folder --- .../com/arm/wa/uiauto/BaseUiAutomation.java | 51 ++++++++++++++++-- wa/framework/uiauto/uiauto.aar | Bin 15361 -> 15768 bytes 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/BaseUiAutomation.java b/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/BaseUiAutomation.java index 22165a2a..7b6c3f39 100644 --- a/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/BaseUiAutomation.java +++ b/wa/framework/uiauto/app/src/main/java/com/arm/wa/uiauto/BaseUiAutomation.java @@ -15,29 +15,31 @@ package com.arm.wa.uiauto; +import android.os.Bundle; +import android.os.SystemClock; import android.app.Instrumentation; import android.content.Context; import android.graphics.Point; import android.graphics.Rect; -import android.os.SystemClock; + import android.support.test.InstrumentationRegistry; import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiObject; import android.support.test.uiautomator.UiObjectNotFoundException; import android.support.test.uiautomator.UiSelector; import android.support.test.uiautomator.UiWatcher; +import android.support.test.uiautomator.UiScrollable; import org.junit.Before; import org.junit.Test; -import static android.support.test.InstrumentationRegistry.getArguments; - -import android.os.Bundle; import java.io.BufferedReader; import java.io.File; import java.io.InputStreamReader; +import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import static android.support.test.InstrumentationRegistry.getArguments; public class BaseUiAutomation { @@ -496,6 +498,47 @@ public class BaseUiAutomation { return object; } + // Helper to select a folder in the gallery + public void selectGalleryFolder(String directory) throws Exception { + UiObject workdir = + mDevice.findObject(new UiSelector().text(directory) + .className("android.widget.TextView")); + UiScrollable scrollView = + new UiScrollable(new UiSelector().scrollable(true)); + + // If the folder is not present wait for a short time for + // the media server to refresh its index. + boolean discovered = workdir.waitForExists(TimeUnit.SECONDS.toMillis(10)); + if (!discovered && scrollView.exists()) { + // First check if the directory is visible on the first + // screen and if not scroll to the bottom of the screen to look for it. + discovered = scrollView.scrollIntoView(workdir); + + // If still not discovered scroll back to the top of the screen and + // wait for a longer amount of time for the media server to refresh + // its index. + if (!discovered) { + // scrollView.scrollToBeggining() doesn't work for this + // particular scrollable view so use device method instead + for (int i = 0; i < 10; i++) { + uiDeviceSwipeUp(20); + } + discovered = workdir.waitForExists(TimeUnit.SECONDS.toMillis(60)); + + // Scroll to the bottom of the screen one last time + if (!discovered) { + discovered = scrollView.scrollIntoView(workdir); + } + } + } + + if (discovered) { + workdir.clickAndWaitForNewWindow(); + } else { + throw new UiObjectNotFoundException("Could not find folder : " + directory); + } + } + // Override getParams function to decode a url encoded parameter bundle before // passing it to workloads. public Bundle getParams() { diff --git a/wa/framework/uiauto/uiauto.aar b/wa/framework/uiauto/uiauto.aar index 34e53d1c172db47ec5306a8a8cbbcc28e296d01f..472b4774b05195e8ba1794fb7527ad5451c77080 100644 GIT binary patch delta 15237 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