Skip tests for overlays that don't exist on device
am: 0ef10a458d
Change-Id: Ib526e0122e3571566e5761a00b1853e01ea303f7
This commit is contained in:
@@ -27,6 +27,7 @@ import static com.android.systemui.shared.system.QuickStepContract.NAV_BAR_MODE_
|
|||||||
import static com.android.systemui.shared.system.QuickStepContract.NAV_BAR_MODE_GESTURAL_OVERLAY;
|
import static com.android.systemui.shared.system.QuickStepContract.NAV_BAR_MODE_GESTURAL_OVERLAY;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.test.uiautomator.UiDevice;
|
import androidx.test.uiautomator.UiDevice;
|
||||||
@@ -106,35 +107,51 @@ public class NavigationModeSwitchRule implements TestRule {
|
|||||||
Log.e(TAG, "Exception", e);
|
Log.e(TAG, "Exception", e);
|
||||||
throw e;
|
throw e;
|
||||||
} finally {
|
} finally {
|
||||||
setActiveOverlay(prevOverlayPkg, originalMode);
|
Assert.assertTrue(setActiveOverlay(prevOverlayPkg, originalMode));
|
||||||
}
|
}
|
||||||
mLauncher.disableDebugTracing();
|
mLauncher.disableDebugTracing();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void evaluateWithoutChangingSetting(Statement base) throws Throwable {
|
|
||||||
base.evaluate();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void evaluateWithThreeButtons() throws Throwable {
|
private void evaluateWithThreeButtons() throws Throwable {
|
||||||
setActiveOverlay(NAV_BAR_MODE_3BUTTON_OVERLAY,
|
if (setActiveOverlay(NAV_BAR_MODE_3BUTTON_OVERLAY,
|
||||||
LauncherInstrumentation.NavigationModel.THREE_BUTTON);
|
LauncherInstrumentation.NavigationModel.THREE_BUTTON)) {
|
||||||
evaluateWithoutChangingSetting(base);
|
base.evaluate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void evaluateWithTwoButtons() throws Throwable {
|
private void evaluateWithTwoButtons() throws Throwable {
|
||||||
setActiveOverlay(NAV_BAR_MODE_2BUTTON_OVERLAY,
|
if (setActiveOverlay(NAV_BAR_MODE_2BUTTON_OVERLAY,
|
||||||
LauncherInstrumentation.NavigationModel.TWO_BUTTON);
|
LauncherInstrumentation.NavigationModel.TWO_BUTTON)) {
|
||||||
base.evaluate();
|
base.evaluate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void evaluateWithZeroButtons() throws Throwable {
|
private void evaluateWithZeroButtons() throws Throwable {
|
||||||
setActiveOverlay(NAV_BAR_MODE_GESTURAL_OVERLAY,
|
if (setActiveOverlay(NAV_BAR_MODE_GESTURAL_OVERLAY,
|
||||||
LauncherInstrumentation.NavigationModel.ZERO_BUTTON);
|
LauncherInstrumentation.NavigationModel.ZERO_BUTTON)) {
|
||||||
base.evaluate();
|
base.evaluate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setActiveOverlay(String overlayPackage,
|
private boolean packageExists(String packageName) {
|
||||||
|
try {
|
||||||
|
PackageManager pm = getInstrumentation().getContext().getPackageManager();
|
||||||
|
if (pm.getApplicationInfo(packageName, 0 /* flags */) == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean setActiveOverlay(String overlayPackage,
|
||||||
LauncherInstrumentation.NavigationModel expectedMode) throws Exception {
|
LauncherInstrumentation.NavigationModel expectedMode) throws Exception {
|
||||||
|
if (!packageExists(overlayPackage)) {
|
||||||
|
Log.d(TAG, "setActiveOverlay: " + overlayPackage + " pkg does not exist");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
setOverlayPackageEnabled(NAV_BAR_MODE_3BUTTON_OVERLAY,
|
setOverlayPackageEnabled(NAV_BAR_MODE_3BUTTON_OVERLAY,
|
||||||
overlayPackage == NAV_BAR_MODE_3BUTTON_OVERLAY);
|
overlayPackage == NAV_BAR_MODE_3BUTTON_OVERLAY);
|
||||||
setOverlayPackageEnabled(NAV_BAR_MODE_2BUTTON_OVERLAY,
|
setOverlayPackageEnabled(NAV_BAR_MODE_2BUTTON_OVERLAY,
|
||||||
@@ -178,6 +195,7 @@ public class NavigationModeSwitchRule implements TestRule {
|
|||||||
Assert.assertTrue("Switching nav mode: " + error, error == null);
|
Assert.assertTrue("Switching nav mode: " + error, error == null);
|
||||||
|
|
||||||
Thread.sleep(5000);
|
Thread.sleep(5000);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setOverlayPackageEnabled(String overlayPackage, boolean enable)
|
private void setOverlayPackageEnabled(String overlayPackage, boolean enable)
|
||||||
|
|||||||
Reference in New Issue
Block a user