Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51ae3830 authored by vadimt's avatar vadimt Committed by Vadim Tryshev
Browse files

Not checking for some anomalies when switching nav modes

Test: presubmit
Bug: 196820244
Change-Id: I3e9554d3deb453625cde5003ccf132f21253f58a
parent b29f63af
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import android.content.Context;
import android.content.pm.PackageManager;
import android.util.Log;

import androidx.test.uiautomator.By;
import androidx.test.uiautomator.UiDevice;

import com.android.launcher3.tapl.LauncherInstrumentation;
@@ -217,12 +216,7 @@ public class NavigationModeSwitchRule implements TestRule {

    private static void assertTrue(LauncherInstrumentation launcher, String message,
            boolean condition, Description description) {
        if (launcher.getDevice().hasObject(By.textStartsWith(""))) {
            // The condition above is "screen is not empty". We are not treating
            // "Screen is empty" as an anomaly here. It's an acceptable state when
            // Launcher just starts under instrumentation.
            launcher.checkForAnomaly();
        }
        launcher.checkForAnomaly(true);
        if (!condition) {
            final AssertionError assertionError = new AssertionError(message);
            if (description != null) {
+1 −1
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ public class Wait {
            throw new RuntimeException(t);
        }
        Log.d("Wait", "atMost: timed out: " + SystemClock.uptimeMillis());
        launcher.checkForAnomaly();
        launcher.checkForAnomaly(false);
        Assert.fail(message.get());
    }

+21 −15
Original line number Diff line number Diff line
@@ -379,7 +379,7 @@ public final class LauncherInstrumentation {
        }
    }

    private String getSystemAnomalyMessage() {
    private String getSystemAnomalyMessage(boolean ignoreNavmodeChangeStates) {
        try {
            {
                final StringBuilder sb = new StringBuilder();
@@ -402,6 +402,7 @@ public final class LauncherInstrumentation {

            if (hasSystemUiObject("keyguard_status_view")) return "Phone is locked";

            if (!ignoreNavmodeChangeStates) {
                final String visibleApps = mDevice.findObjects(getAnyObjectSelector())
                        .stream()
                        .map(LauncherInstrumentation::getApplicationPackageSafe)
@@ -413,6 +414,7 @@ public final class LauncherInstrumentation {
                if (!mDevice.wait(Until.hasObject(getAnyObjectSelector()), WAIT_TIME_MS)) {
                    return "Screen is empty";
                }
            }

            final String navigationModeError = getNavigationModeMismatchError(true);
            if (navigationModeError != null) return navigationModeError;
@@ -423,8 +425,12 @@ public final class LauncherInstrumentation {
        return null;
    }

    public void checkForAnomaly() {
        final String systemAnomalyMessage = getSystemAnomalyMessage();
    private void checkForAnomaly() {
        checkForAnomaly(false);
    }

    public void checkForAnomaly(boolean ignoreNavmodeChangeStates) {
        final String systemAnomalyMessage = getSystemAnomalyMessage(ignoreNavmodeChangeStates);
        if (systemAnomalyMessage != null) {
            Assert.fail(formatSystemHealthMessage(formatErrorWithEvents(
                    "http://go/tapl : Tests are broken by a non-Launcher system error: "