Loading packages/SystemUI/accessibility/accessibilitymenu/tests/src/com/android/systemui/accessibility/accessibilitymenu/tests/AccessibilityMenuServiceTest.java +17 −10 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static com.android.systemui.accessibility.accessibilitymenu.Accessibility import static com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService.INTENT_TOGGLE_MENU; import static com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService.INTENT_TOGGLE_MENU; import static com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService.PACKAGE_NAME; import static com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService.PACKAGE_NAME; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static com.google.common.truth.Truth.assertWithMessage; import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.AccessibilityServiceInfo; Loading @@ -45,11 +46,11 @@ import android.hardware.display.BrightnessInfo; import android.hardware.display.DisplayManager; import android.hardware.display.DisplayManager; import android.media.AudioManager; import android.media.AudioManager; import android.os.PowerManager; import android.os.PowerManager; import android.os.RemoteException; import android.platform.uiautomator_helpers.WaitUtils; import android.platform.uiautomator_helpers.WaitUtils; import android.provider.Settings; import android.provider.Settings; import android.util.Log; import android.util.Log; import android.view.Display; import android.view.Display; import android.view.KeyEvent; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo; Loading @@ -69,6 +70,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import java.io.IOException; import java.util.List; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger; Loading Loading @@ -112,6 +114,7 @@ public class AccessibilityMenuServiceTest { sPowerManager = context.getSystemService(PowerManager.class); sPowerManager = context.getSystemService(PowerManager.class); sKeyguardManager = context.getSystemService(KeyguardManager.class); sKeyguardManager = context.getSystemService(KeyguardManager.class); sDisplayManager = context.getSystemService(DisplayManager.class); sDisplayManager = context.getSystemService(DisplayManager.class); unlockSignal(); // Disable all a11yServices if any are active. // Disable all a11yServices if any are active. if (!sAccessibilityManager.getEnabledAccessibilityServiceList( if (!sAccessibilityManager.getEnabledAccessibilityServiceList( Loading Loading @@ -176,28 +179,32 @@ public class AccessibilityMenuServiceTest { } } private static boolean isMenuVisible() { private static boolean isMenuVisible() { sUiDevice.waitForIdle(); AccessibilityNodeInfo root = sUiAutomation.getRootInActiveWindow(); AccessibilityNodeInfo root = sUiAutomation.getRootInActiveWindow(); return root != null && root.getPackageName().toString().equals(PACKAGE_NAME); return root != null && root.getPackageName().toString().equals(PACKAGE_NAME); } } private static void wakeUpScreen() throws RemoteException { private static void wakeUpScreen() throws IOException { sUiDevice.wakeUp(); sUiDevice.pressKeyCode(KeyEvent.KEYCODE_WAKEUP); WaitUtils.waitForValueToSettle("Screen On", AccessibilityMenuServiceTest::isScreenOn); WaitUtils.waitForValueToSettle("Screen On", AccessibilityMenuServiceTest::isScreenOn); assertWithMessage("Screen is on").that(isScreenOn()).isTrue(); assertWithMessage("Screen is on").that(isScreenOn()).isTrue(); } } private static void closeScreen() throws Throwable { private static void closeScreen() throws Throwable { sUiAutomation.performGlobalAction(GLOBAL_ACTION_LOCK_SCREEN); // go/adb-cheats#lock-screen sUiDevice.pressKeyCode(KeyEvent.KEYCODE_SLEEP); WaitUtils.waitForValueToSettle("Screen Off", AccessibilityMenuServiceTest::isScreenOff); WaitUtils.waitForValueToSettle("Screen Off", AccessibilityMenuServiceTest::isScreenOff); assertWithMessage("Screen is off").that(isScreenOff()).isTrue(); assertWithMessage("Screen is off").that(isScreenOff()).isTrue(); WaitUtils.ensureThat( "Screen is locked", () -> sKeyguardManager.isKeyguardLocked()); } } private static void openMenu() throws Throwable { private static void openMenu() throws Throwable { unlockSignal(); unlockSignal(); if (!isMenuVisible()) { if (!isMenuVisible()) { sInstrumentation.getTargetContext().sendBroadcast(INTENT_OPEN_MENU); sInstrumentation.getTargetContext().sendBroadcast(INTENT_OPEN_MENU); sUiDevice.waitForIdle(); WaitUtils.ensureThat("Accessibility Menu is visible", WaitUtils.ensureThat("Accessibility Menu is visible", () -> isMenuVisible()); AccessibilityMenuServiceTest::isMenuVisible); } } } } Loading Loading @@ -449,6 +456,7 @@ public class AccessibilityMenuServiceTest { openMenu(); openMenu(); closeScreen(); closeScreen(); wakeUpScreen(); wakeUpScreen(); assertThat(sKeyguardManager.isKeyguardLocked()).isTrue(); TestUtils.waitUntil("Menu did not close.", TestUtils.waitUntil("Menu did not close.", TIMEOUT_UI_CHANGE_S, TIMEOUT_UI_CHANGE_S, Loading @@ -460,6 +468,8 @@ public class AccessibilityMenuServiceTest { public void testOnScreenLock_cannotOpenMenu() throws Throwable { public void testOnScreenLock_cannotOpenMenu() throws Throwable { closeScreen(); closeScreen(); wakeUpScreen(); wakeUpScreen(); assertThat(sKeyguardManager.isKeyguardLocked()).isTrue(); sInstrumentation.getContext().sendBroadcast(INTENT_OPEN_MENU); sInstrumentation.getContext().sendBroadcast(INTENT_OPEN_MENU); sUiDevice.waitForIdle(); sUiDevice.waitForIdle(); Loading @@ -468,10 +478,7 @@ public class AccessibilityMenuServiceTest { sOpenBlocked::get); sOpenBlocked::get); } } private static void unlockSignal() throws RemoteException { private static void unlockSignal() throws IOException { if (!sKeyguardManager.isKeyguardLocked()) { return; } // go/adb-cheats#unlock-screen // go/adb-cheats#unlock-screen wakeUpScreen(); wakeUpScreen(); if (sKeyguardManager.isKeyguardLocked()) { if (sKeyguardManager.isKeyguardLocked()) { Loading Loading
packages/SystemUI/accessibility/accessibilitymenu/tests/src/com/android/systemui/accessibility/accessibilitymenu/tests/AccessibilityMenuServiceTest.java +17 −10 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static com.android.systemui.accessibility.accessibilitymenu.Accessibility import static com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService.INTENT_TOGGLE_MENU; import static com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService.INTENT_TOGGLE_MENU; import static com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService.PACKAGE_NAME; import static com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService.PACKAGE_NAME; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static com.google.common.truth.Truth.assertWithMessage; import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.AccessibilityServiceInfo; Loading @@ -45,11 +46,11 @@ import android.hardware.display.BrightnessInfo; import android.hardware.display.DisplayManager; import android.hardware.display.DisplayManager; import android.media.AudioManager; import android.media.AudioManager; import android.os.PowerManager; import android.os.PowerManager; import android.os.RemoteException; import android.platform.uiautomator_helpers.WaitUtils; import android.platform.uiautomator_helpers.WaitUtils; import android.provider.Settings; import android.provider.Settings; import android.util.Log; import android.util.Log; import android.view.Display; import android.view.Display; import android.view.KeyEvent; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo; Loading @@ -69,6 +70,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import java.io.IOException; import java.util.List; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger; Loading Loading @@ -112,6 +114,7 @@ public class AccessibilityMenuServiceTest { sPowerManager = context.getSystemService(PowerManager.class); sPowerManager = context.getSystemService(PowerManager.class); sKeyguardManager = context.getSystemService(KeyguardManager.class); sKeyguardManager = context.getSystemService(KeyguardManager.class); sDisplayManager = context.getSystemService(DisplayManager.class); sDisplayManager = context.getSystemService(DisplayManager.class); unlockSignal(); // Disable all a11yServices if any are active. // Disable all a11yServices if any are active. if (!sAccessibilityManager.getEnabledAccessibilityServiceList( if (!sAccessibilityManager.getEnabledAccessibilityServiceList( Loading Loading @@ -176,28 +179,32 @@ public class AccessibilityMenuServiceTest { } } private static boolean isMenuVisible() { private static boolean isMenuVisible() { sUiDevice.waitForIdle(); AccessibilityNodeInfo root = sUiAutomation.getRootInActiveWindow(); AccessibilityNodeInfo root = sUiAutomation.getRootInActiveWindow(); return root != null && root.getPackageName().toString().equals(PACKAGE_NAME); return root != null && root.getPackageName().toString().equals(PACKAGE_NAME); } } private static void wakeUpScreen() throws RemoteException { private static void wakeUpScreen() throws IOException { sUiDevice.wakeUp(); sUiDevice.pressKeyCode(KeyEvent.KEYCODE_WAKEUP); WaitUtils.waitForValueToSettle("Screen On", AccessibilityMenuServiceTest::isScreenOn); WaitUtils.waitForValueToSettle("Screen On", AccessibilityMenuServiceTest::isScreenOn); assertWithMessage("Screen is on").that(isScreenOn()).isTrue(); assertWithMessage("Screen is on").that(isScreenOn()).isTrue(); } } private static void closeScreen() throws Throwable { private static void closeScreen() throws Throwable { sUiAutomation.performGlobalAction(GLOBAL_ACTION_LOCK_SCREEN); // go/adb-cheats#lock-screen sUiDevice.pressKeyCode(KeyEvent.KEYCODE_SLEEP); WaitUtils.waitForValueToSettle("Screen Off", AccessibilityMenuServiceTest::isScreenOff); WaitUtils.waitForValueToSettle("Screen Off", AccessibilityMenuServiceTest::isScreenOff); assertWithMessage("Screen is off").that(isScreenOff()).isTrue(); assertWithMessage("Screen is off").that(isScreenOff()).isTrue(); WaitUtils.ensureThat( "Screen is locked", () -> sKeyguardManager.isKeyguardLocked()); } } private static void openMenu() throws Throwable { private static void openMenu() throws Throwable { unlockSignal(); unlockSignal(); if (!isMenuVisible()) { if (!isMenuVisible()) { sInstrumentation.getTargetContext().sendBroadcast(INTENT_OPEN_MENU); sInstrumentation.getTargetContext().sendBroadcast(INTENT_OPEN_MENU); sUiDevice.waitForIdle(); WaitUtils.ensureThat("Accessibility Menu is visible", WaitUtils.ensureThat("Accessibility Menu is visible", () -> isMenuVisible()); AccessibilityMenuServiceTest::isMenuVisible); } } } } Loading Loading @@ -449,6 +456,7 @@ public class AccessibilityMenuServiceTest { openMenu(); openMenu(); closeScreen(); closeScreen(); wakeUpScreen(); wakeUpScreen(); assertThat(sKeyguardManager.isKeyguardLocked()).isTrue(); TestUtils.waitUntil("Menu did not close.", TestUtils.waitUntil("Menu did not close.", TIMEOUT_UI_CHANGE_S, TIMEOUT_UI_CHANGE_S, Loading @@ -460,6 +468,8 @@ public class AccessibilityMenuServiceTest { public void testOnScreenLock_cannotOpenMenu() throws Throwable { public void testOnScreenLock_cannotOpenMenu() throws Throwable { closeScreen(); closeScreen(); wakeUpScreen(); wakeUpScreen(); assertThat(sKeyguardManager.isKeyguardLocked()).isTrue(); sInstrumentation.getContext().sendBroadcast(INTENT_OPEN_MENU); sInstrumentation.getContext().sendBroadcast(INTENT_OPEN_MENU); sUiDevice.waitForIdle(); sUiDevice.waitForIdle(); Loading @@ -468,10 +478,7 @@ public class AccessibilityMenuServiceTest { sOpenBlocked::get); sOpenBlocked::get); } } private static void unlockSignal() throws RemoteException { private static void unlockSignal() throws IOException { if (!sKeyguardManager.isKeyguardLocked()) { return; } // go/adb-cheats#unlock-screen // go/adb-cheats#unlock-screen wakeUpScreen(); wakeUpScreen(); if (sKeyguardManager.isKeyguardLocked()) { if (sKeyguardManager.isKeyguardLocked()) { Loading