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

Commit 8a532e0b authored by Vadim Tryshev's avatar Vadim Tryshev Committed by Android (Google) Code Review
Browse files

Merge "Taking screenshots for local tests for FallbackRecentsTest" into ub-launcher3-qt-dev

parents 8ca7205c 26cfff41
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -43,10 +43,12 @@ import androidx.test.uiautomator.Until;

import com.android.launcher3.tapl.LauncherInstrumentation;
import com.android.launcher3.testcomponent.TestCommandReceiver;
import com.android.launcher3.util.rule.FailureWatcher;
import com.android.quickstep.NavigationModeSwitchRule.NavigationModeSwitch;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
import org.junit.runners.model.Statement;
@@ -62,10 +64,14 @@ public class FallbackRecentsTest {
    private final LauncherInstrumentation mLauncher;
    private final ActivityInfo mOtherLauncherActivity;

    @Rule public final TestRule mDisableHeadsUpNotification = disableHeadsUpNotification();
    @Rule public final TestRule mQuickstepOnOffExecutor;
    @Rule
    public final TestRule mDisableHeadsUpNotification = disableHeadsUpNotification();

    @Rule public final TestRule mSetLauncherCommand;
    @Rule
    public final TestRule mSetLauncherCommand;

    @Rule
    public final TestRule mOrderSensitiveRules;

    public FallbackRecentsTest() throws RemoteException {
        Instrumentation instrumentation = getInstrumentation();
@@ -74,7 +80,10 @@ public class FallbackRecentsTest {
        mDevice.setOrientationNatural();
        mLauncher = new LauncherInstrumentation(instrumentation);

        mQuickstepOnOffExecutor = new NavigationModeSwitchRule(mLauncher);
        mOrderSensitiveRules = RuleChain.
                outerRule(new NavigationModeSwitchRule(mLauncher)).
                around(new FailureWatcher(mDevice));

        mOtherLauncherActivity = context.getPackageManager().queryIntentActivities(
                getHomeIntentInPackage(context),
                MATCH_DISABLED_COMPONENTS).get(0).activityInfo;
+1 −1
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ public abstract class AbstractLauncherUiTest {
    protected TestRule getRulesInsideActivityMonitor() {
        return RuleChain.
                outerRule(new PortraitLandscapeRunner(this)).
                around(new FailureWatcher(this));
                around(new FailureWatcher(mDevice));
    }

    @Rule
+8 −8
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import static androidx.test.InstrumentationRegistry.getInstrumentation;

import android.util.Log;

import com.android.launcher3.ui.AbstractLauncherUiTest;
import androidx.test.uiautomator.UiDevice;

import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
@@ -16,16 +16,16 @@ import java.io.IOException;
public class FailureWatcher extends TestWatcher {
    private static final String TAG = "FailureWatcher";
    private static int sScreenshotCount = 0;
    private AbstractLauncherUiTest mAbstractLauncherUiTest;
    final private UiDevice mDevice;

    public FailureWatcher(AbstractLauncherUiTest abstractLauncherUiTest) {
        mAbstractLauncherUiTest = abstractLauncherUiTest;
    public FailureWatcher(UiDevice device) {
        mDevice = device;
    }

    private void dumpViewHierarchy() {
        final ByteArrayOutputStream stream = new ByteArrayOutputStream();
        try {
            mAbstractLauncherUiTest.getDevice().dumpWindowHierarchy(stream);
            mDevice.dumpWindowHierarchy(stream);
            stream.flush();
            stream.close();
            for (String line : stream.toString().split("\\r?\\n")) {
@@ -38,7 +38,7 @@ public class FailureWatcher extends TestWatcher {

    @Override
    protected void failed(Throwable e, Description description) {
        if (mAbstractLauncherUiTest.getDevice() == null) return;
        if (mDevice == null) return;
        final String pathname = getInstrumentation().getTargetContext().
                getFilesDir().getPath() + "/TaplTestScreenshot" + sScreenshotCount++ + ".png";
        Log.e(TAG, "Failed test " + description.getMethodName() +
@@ -48,12 +48,12 @@ public class FailureWatcher extends TestWatcher {
        dumpViewHierarchy();

        try {
            final String dumpsysResult = mAbstractLauncherUiTest.getDevice().executeShellCommand(
            final String dumpsysResult = mDevice.executeShellCommand(
                    "dumpsys activity service TouchInteractionService");
            Log.d(TAG, "TouchInteractionService: " + dumpsysResult);
        } catch (IOException ex) {
        }

        mAbstractLauncherUiTest.getDevice().takeScreenshot(new File(pathname));
        mDevice.takeScreenshot(new File(pathname));
    }
}