From e866c91b845b272f17935ae5040aa2a8d46a6245 Mon Sep 17 00:00:00 2001 From: Vitor Carvalho Date: Wed, 22 Jan 2025 16:50:59 +0000 Subject: [PATCH] Fix ActionDisabledByAdminDialogHelperTest by setting a mock SupervisionManager as system service. A shadow of DPM is automatically added as system service by Robolectric infra. Since SupervisionManager is new, it doesn't have that. We will consider changing Robolectric to do the same thing when SupervisionManager becomes more stable. Flag: TEST_ONLY Bug: 382034839 Test: atest ActionDisabledByAdminDialogHelperTest Change-Id: I389938df10ce97c563511473b0aeaee52225f419 --- .../ActionDisabledByAdminDialogHelperTest.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java index 6db008de223..b2a928e03e3 100644 --- a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java +++ b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java @@ -29,7 +29,9 @@ import static org.mockito.Mockito.verify; import android.app.Activity; import android.app.admin.DevicePolicyManager; +import android.app.supervision.SupervisionManager; import android.content.ComponentName; +import android.content.Context; import android.content.pm.UserInfo; import android.os.Process; import android.os.UserHandle; @@ -49,14 +51,19 @@ import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import org.junit.Before; import org.junit.Ignore; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.Shadows; import org.robolectric.annotation.Config; import org.robolectric.shadow.api.Shadow; +import org.robolectric.shadows.ShadowContextImpl; import org.robolectric.shadows.ShadowProcess; @RunWith(RobolectricTestRunner.class) @@ -66,19 +73,24 @@ import org.robolectric.shadows.ShadowProcess; ShadowActivity.class }) public class ActionDisabledByAdminDialogHelperTest { + @Rule public final MockitoRule mMocks = MockitoJUnit.rule(); + private static final ComponentName ADMIN_COMPONENT = new ComponentName("some.package.name", "some.package.name.SomeClass"); private static final int USER_ID = 123; private static final EnforcedAdmin ENFORCED_ADMIN = new EnforcedAdmin(ADMIN_COMPONENT, new UserHandle(USER_ID)); + + @Mock private SupervisionManager mSupervisionManager; + private ActionDisabledByAdminDialogHelper mHelper; private Activity mActivity; - private org.robolectric.shadows.ShadowActivity mActivityShadow; @Before public void setUp() { mActivity = Robolectric.setupActivity(CustomActivity.class); - mActivityShadow = Shadow.extract(mActivity); + ShadowContextImpl shadowContext = Shadow.extract(mActivity.getBaseContext()); + shadowContext.setSystemService(Context.SUPERVISION_SERVICE, mSupervisionManager); mHelper = new ActionDisabledByAdminDialogHelper(mActivity); }