mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 10:48:19 +00:00
Merge "Taking screenshots for local tests for FallbackRecentsTest" into ub-launcher3-qt-dev
am: 8a532e0bec
Change-Id: Ie409c6170fd76ac06de057dceb4b1696fb62696a
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user