LauncherInstrumentation enables even when non-system user

Attempting to run a tapl test while the device is in a secondary user
currently fails because the test app doesn't get enabled for
this secondary user. We fix that (at least one issue with it) in this cl.

Test: make PlatformScenarioTests; adb root && adb install -r -g ${ANDROID_PRODUCT_OUT}/testcases/PlatformScenarioTests/$(get_build_var TARGET_ARCH)/PlatformScenarioTests.apk
adb shell am instrument -w -r -e class android.platform.test.scenario.chrome.OpenApp android.platform.test.scenario/androidx.test.runner.AndroidJUnitRunner
(Do this while the current user is SYSTEM as well as Guest)

Bug: 162454040
Change-Id: If6d8e545b41eb20e3fed2935c39069ce97d8b6cd
This commit is contained in:
Adam Bookatz 2020-07-29 15:46:16 -07:00
parent 70a556da1d
commit 2104d72b28
1 changed files with 5 additions and 3 deletions

View File

@ -64,6 +64,7 @@ import androidx.test.uiautomator.Until;
import com.android.launcher3.ResourceUtils;
import com.android.launcher3.testing.TestProtocol;
import com.android.systemui.shared.system.ContextUtils;
import com.android.systemui.shared.system.QuickStepContract;
import org.junit.Assert;
@ -238,11 +239,12 @@ public final class LauncherInstrumentation {
if (pm.getComponentEnabledSetting(cn) != COMPONENT_ENABLED_STATE_ENABLED) {
if (TestHelpers.isInLauncherProcess()) {
getContext().getPackageManager().setComponentEnabledSetting(
cn, COMPONENT_ENABLED_STATE_ENABLED, DONT_KILL_APP);
pm.setComponentEnabledSetting(cn, COMPONENT_ENABLED_STATE_ENABLED, DONT_KILL_APP);
} else {
try {
mDevice.executeShellCommand("pm enable " + cn.flattenToString());
final int userId = ContextUtils.getUserId(getContext());
mDevice.executeShellCommand(
"pm enable --user " + userId + " " + cn.flattenToString());
} catch (IOException e) {
fail(e.toString());
}