summaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/launcher3/ui/PortraitLandscapeRunner.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/com/android/launcher3/ui/PortraitLandscapeRunner.java')
-rw-r--r--tests/src/com/android/launcher3/ui/PortraitLandscapeRunner.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/src/com/android/launcher3/ui/PortraitLandscapeRunner.java b/tests/src/com/android/launcher3/ui/PortraitLandscapeRunner.java
new file mode 100644
index 000000000..20cd1e7d2
--- /dev/null
+++ b/tests/src/com/android/launcher3/ui/PortraitLandscapeRunner.java
@@ -0,0 +1,63 @@
+package com.android.launcher3.ui;
+
+import android.view.Surface;
+
+import com.android.launcher3.tapl.TestHelpers;
+
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+class PortraitLandscapeRunner implements TestRule {
+ private AbstractLauncherUiTest mTest;
+
+ public PortraitLandscapeRunner(AbstractLauncherUiTest test) {
+ mTest = test;
+ }
+
+ @Override
+ public Statement apply(Statement base, Description description) {
+ if (!TestHelpers.isInLauncherProcess() ||
+ description.getAnnotation(AbstractLauncherUiTest.PortraitLandscape.class) == null) {
+ return base;
+ }
+
+ return new Statement() {
+ @Override
+ public void evaluate() throws Throwable {
+ try {
+ mTest.mDevice.pressHome();
+ mTest.waitForLauncherCondition("Launcher activity wasn't created",
+ launcher -> launcher != null);
+
+ mTest.executeOnLauncher(launcher ->
+ launcher.getRotationHelper().forceAllowRotationForTesting(
+ true));
+
+ evaluateInPortrait();
+ evaluateInLandscape();
+ } finally {
+ mTest.mDevice.setOrientationNatural();
+ mTest.executeOnLauncher(launcher ->
+ launcher.getRotationHelper().forceAllowRotationForTesting(
+ false));
+ mTest.mLauncher.setExpectedRotation(Surface.ROTATION_0);
+ }
+ }
+
+ private void evaluateInPortrait() throws Throwable {
+ mTest.mDevice.setOrientationNatural();
+ mTest.mLauncher.setExpectedRotation(Surface.ROTATION_0);
+ base.evaluate();
+ mTest.mLauncher.pressHome();
+ }
+
+ private void evaluateInLandscape() throws Throwable {
+ mTest.mDevice.setOrientationLeft();
+ mTest.mLauncher.setExpectedRotation(Surface.ROTATION_90);
+ base.evaluate();
+ mTest.mLauncher.pressHome();
+ }
+ };
+ }
+}