diff options
Diffstat (limited to 'libs/UiAutomatorLib')
5 files changed, 45 insertions, 4 deletions
diff --git a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/Constants.java b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/Constants.java index 35bbbe0..09de03e 100644 --- a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/Constants.java +++ b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/Constants.java @@ -23,6 +23,7 @@ import android.webkit.WebView; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; +import android.widget.ScrollView; import android.widget.Switch; import java.util.regex.Pattern; @@ -208,12 +209,21 @@ public final class Constants { public static final BySelector MANAGED_PROVISIONING_OK_BUTTON_SELECTOR = By.res( MANAGED_PROVISIONING_PKG_NAME, "positive_button"); + public static final BySelector MANAGED_PROVISIONING_SCROLL_VIEW_SELECTOR = + By.pkg(MANAGED_PROVISIONING_PKG_NAME).clazz(ScrollView.class.getName()); + /** * {@link BySelector} for {@link Button} in Package Installer with resource-id ok_button. */ public static final BySelector PACKAGE_INSTALLER_INSTALL_BUTTON_SELECTOR = By.res( PACKAGE_INSTALLER_PKG_NAME, "ok_button"); + public static final BySelector TESTDPC_SETUP_MANAGEMENT_PAGE_TITLE_SELECTOR = + By.pkg(TESTDPC_PKG_NAME).text(Pattern.compile("Set.*management.*", CASE_INSENSITIVE)); + + public static final BySelector TESTDPC_SCROLL_VIEW_SELECTOR = + By.pkg(TESTDPC_PKG_NAME).clazz(ScrollView.class.getName()); + /** * {@link BySelector} for {@link RadioButton} with resource-id setup_device_owner on * TestDpc Setup Management page. diff --git a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/gms/EnterPasswordPage.java b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/gms/EnterPasswordPage.java index abebc0d..96e7dcd 100644 --- a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/gms/EnterPasswordPage.java +++ b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/gms/EnterPasswordPage.java @@ -18,7 +18,9 @@ package com.android.afwtest.uiautomator.pages.gms; import static com.android.afwtest.uiautomator.Constants.GMS_NEXT_BUTTON_SELECTOR; import static com.android.afwtest.uiautomator.Constants.GMS_PKG_NAME; +import static com.android.afwtest.uiautomator.Constants.GMS_TEXT_FIELD_SELECTOR; +import android.os.SystemClock; import android.support.test.uiautomator.By; import android.support.test.uiautomator.BySelector; import android.support.test.uiautomator.UiDevice; @@ -90,6 +92,14 @@ public final class EnterPasswordPage extends UiPage { */ @Override public void navigate() throws Exception { + WidgetUtils.waitAndClick(getUiDevice(), + GMS_TEXT_FIELD_SELECTOR, + TimeUnit.SECONDS.toMillis(5)); + // Clicking the text field will bring up the keyboard and change the view hierachy of + // current screen; textField may become stale. Try to find it again before simulating + // the keyboard events. + SystemClock.sleep(TimeUnit.SECONDS.toMillis(5)); + //Enter password by key event KeyCharacterMap map = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD); KeyEvent[] events = map.getEvents(mPassword.toCharArray()); diff --git a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/managedprovisioning/SetupYourDevicePage.java b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/managedprovisioning/SetupYourDevicePage.java index 94446af..e3730a9 100644 --- a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/managedprovisioning/SetupYourDevicePage.java +++ b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/managedprovisioning/SetupYourDevicePage.java @@ -17,6 +17,7 @@ package com.android.afwtest.uiautomator.pages.managedprovisioning; import static com.android.afwtest.uiautomator.Constants.MANAGED_PROVISIONING_PKG_NAME; +import static com.android.afwtest.uiautomator.Constants.MANAGED_PROVISIONING_SCROLL_VIEW_SELECTOR; import static com.android.afwtest.uiautomator.Constants.MANAGED_PROVISIONING_SETUP_BUTTON_SELECTOR; import static com.android.afwtest.uiautomator.Constants.STAT_TESTDPC_WORK_PROFILE_CREATION_TIME; @@ -48,6 +49,9 @@ public class SetupYourDevicePage extends BasePage { By.pkg(MANAGED_PROVISIONING_PKG_NAME) .text(Pattern.compile("Set up work device")); + private static final BySelector LEARN_MORE_TEXT_1 = + By.res(MANAGED_PROVISIONING_PKG_NAME, "learn_more_text1"); + /** * {@link BySelector} for {@link CheckBox} with resource-id user_consent_checkbox on * base ManagedProvisioning dialog. @@ -82,8 +86,14 @@ public class SetupYourDevicePage extends BasePage { public void navigate() throws Exception { WidgetUtils.waitAndClick(getUiDevice(), MANAGED_PROVISIONING_SETUP_BUTTON_SELECTOR, DEFAULT_TIMEOUT_MS); - WidgetUtils.waitAndClick(getUiDevice(), MANAGED_PROVISIONING_CONSENT_CHECKBOX_SELECTOR, - DEFAULT_TIMEOUT_MS); + if (null != WidgetUtils.safeWait(getUiDevice(), LEARN_MORE_TEXT_1)) { + WidgetUtils.scrollToItem(getUiDevice(), + MANAGED_PROVISIONING_SCROLL_VIEW_SELECTOR, + MANAGED_PROVISIONING_CONSENT_CHECKBOX_SELECTOR); + WidgetUtils.waitAndClick(getUiDevice(), + MANAGED_PROVISIONING_CONSENT_CHECKBOX_SELECTOR, + DEFAULT_TIMEOUT_MS); + } onProvisioningStarted(); diff --git a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/testdpc/SetupManagementDoPage.java b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/testdpc/SetupManagementDoPage.java index 64a5b80..6aeb2e1 100644 --- a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/testdpc/SetupManagementDoPage.java +++ b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/testdpc/SetupManagementDoPage.java @@ -17,7 +17,9 @@ package com.android.afwtest.uiautomator.pages.testdpc; import static com.android.afwtest.uiautomator.Constants.TESTDPC_NEXT_BUTTON_SELECTOR; +import static com.android.afwtest.uiautomator.Constants.TESTDPC_SCROLL_VIEW_SELECTOR; import static com.android.afwtest.uiautomator.Constants.TESTDPC_SETUP_DEVICE_OWNER_RADIO_BUTTON_SELECTOR; +import static com.android.afwtest.uiautomator.Constants.TESTDPC_SETUP_MANAGEMENT_PAGE_TITLE_SELECTOR; import android.support.test.uiautomator.BySelector; import android.support.test.uiautomator.UiDevice; @@ -46,7 +48,7 @@ public final class SetupManagementDoPage extends UiPage { */ @Override public BySelector uniqueElement() { - return TESTDPC_SETUP_DEVICE_OWNER_RADIO_BUTTON_SELECTOR; + return TESTDPC_SETUP_MANAGEMENT_PAGE_TITLE_SELECTOR; } /** @@ -54,6 +56,9 @@ public final class SetupManagementDoPage extends UiPage { */ @Override public void navigate() throws Exception { + WidgetUtils.scrollToItem(getUiDevice(), + TESTDPC_SCROLL_VIEW_SELECTOR, + TESTDPC_SETUP_DEVICE_OWNER_RADIO_BUTTON_SELECTOR); WidgetUtils.waitAndClick(getUiDevice(), TESTDPC_SETUP_DEVICE_OWNER_RADIO_BUTTON_SELECTOR); WidgetUtils.waitAndClick(getUiDevice(), TESTDPC_NEXT_BUTTON_SELECTOR); diff --git a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/testdpc/SetupManagementPoPage.java b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/testdpc/SetupManagementPoPage.java index 04a82e5..468016f 100644 --- a/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/testdpc/SetupManagementPoPage.java +++ b/libs/UiAutomatorLib/src/com/android/afwtest/uiautomator/pages/testdpc/SetupManagementPoPage.java @@ -17,7 +17,10 @@ package com.android.afwtest.uiautomator.pages.testdpc; import static com.android.afwtest.uiautomator.Constants.TESTDPC_NEXT_BUTTON_SELECTOR; +import static com.android.afwtest.uiautomator.Constants.TESTDPC_SCROLL_VIEW_SELECTOR; +import static com.android.afwtest.uiautomator.Constants.TESTDPC_SETUP_DEVICE_OWNER_RADIO_BUTTON_SELECTOR; import static com.android.afwtest.uiautomator.Constants.TESTDPC_SETUP_MANAGED_PROFILE_RADIO_BUTTON_SELECTOR; +import static com.android.afwtest.uiautomator.Constants.TESTDPC_SETUP_MANAGEMENT_PAGE_TITLE_SELECTOR; import android.support.test.uiautomator.BySelector; import android.support.test.uiautomator.UiDevice; @@ -46,7 +49,7 @@ public final class SetupManagementPoPage extends UiPage { */ @Override public BySelector uniqueElement() { - return TESTDPC_SETUP_MANAGED_PROFILE_RADIO_BUTTON_SELECTOR; + return TESTDPC_SETUP_MANAGEMENT_PAGE_TITLE_SELECTOR; } /** @@ -54,6 +57,9 @@ public final class SetupManagementPoPage extends UiPage { */ @Override public void navigate() throws Exception { + WidgetUtils.scrollToItem(getUiDevice(), + TESTDPC_SCROLL_VIEW_SELECTOR, + TESTDPC_SETUP_DEVICE_OWNER_RADIO_BUTTON_SELECTOR); WidgetUtils.waitAndClick(getUiDevice(), TESTDPC_SETUP_MANAGED_PROFILE_RADIO_BUTTON_SELECTOR); WidgetUtils.waitAndClick(getUiDevice(), TESTDPC_NEXT_BUTTON_SELECTOR); |