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

Commit 26cfff41 authored by vadimt's avatar vadimt
Browse files

Taking screenshots for local tests for FallbackRecentsTest

Change-Id: I604e7e90f2146069827b520d44db1854edc7aa77
parent a90531cd
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));
    }
}