diff options
| author | 2022-04-12 14:17:16 +0000 | |
|---|---|---|
| committer | 2022-04-12 14:17:16 +0000 | |
| commit | 4d35e771f44f82d5446ab5c0d0ef1e9639760e7d (patch) | |
| tree | a3e13260ca380d252b6ed558080386b333144ced | |
| parent | 7359720a2d5abe70de730c2707c05a28acd2e4f4 (diff) | |
| parent | 4eefc3152cb95a09e82e7a9952a919b506b72a34 (diff) | |
Merge "Fix DPMS unit tests." into tm-dev
4 files changed, 15 insertions, 24 deletions
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java index f834b3438aa3..9ba7a9ac0e2e 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java @@ -33,8 +33,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.admin.DevicePolicyManager; -import android.app.admin.DevicePolicyManagerInternal; -import android.app.admin.DevicePolicyManagerLiteInternal; import android.content.ComponentName; import android.content.Intent; import android.content.pm.PackageManager; @@ -50,7 +48,6 @@ import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.frameworks.servicestests.R; -import com.android.server.LocalServices; import com.android.server.SystemService; import org.junit.Before; @@ -164,9 +161,6 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { final long ident = mContext.binder.clearCallingIdentity(); try { - LocalServices.removeServiceForTest(DevicePolicyManagerLiteInternal.class); - LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); - dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); @@ -278,9 +272,6 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { final long ident = mContext.binder.clearCallingIdentity(); try { - LocalServices.removeServiceForTest(DevicePolicyManagerLiteInternal.class); - LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); - dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); @@ -347,9 +338,6 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { // (Need clearCallingIdentity() to pass permission checks.) final long ident = mContext.binder.clearCallingIdentity(); try { - LocalServices.removeServiceForTest(DevicePolicyManagerLiteInternal.class); - LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); - dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); @@ -508,9 +496,6 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { DevicePolicyManagerServiceTestable dpms; final long ident = mContext.binder.clearCallingIdentity(); try { - LocalServices.removeServiceForTest(DevicePolicyManagerLiteInternal.class); - LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); - dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java index 4f87f9d949eb..2dbf728c577e 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java @@ -21,6 +21,8 @@ import android.app.IActivityManager; import android.app.IActivityTaskManager; import android.app.NotificationManager; import android.app.PendingIntent; +import android.app.admin.DevicePolicyManagerInternal; +import android.app.admin.DevicePolicyManagerLiteInternal; import android.app.backup.IBackupManager; import android.app.usage.UsageStatsManagerInternal; import android.content.Context; @@ -49,6 +51,7 @@ import androidx.annotation.NonNull; import com.android.internal.util.FunctionalUtils.ThrowingRunnable; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockSettingsInternal; +import com.android.server.LocalServices; import com.android.server.PersistentDataBlockManagerInternal; import com.android.server.net.NetworkPolicyManagerInternal; import com.android.server.pm.UserManagerInternal; @@ -99,11 +102,22 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi } private DevicePolicyManagerServiceTestable(MockInjector injector) { - super(injector); + super(unregisterLocalServices(injector)); mMockInjector = injector; this.context = injector.context; } + /** + * Unregisters local services to avoid IllegalStateException when DPMS ctor re-registers them. + * This is made into a static method to circumvent the requirement to call super() first. + * Returns its parameter as is. + */ + private static MockInjector unregisterLocalServices(MockInjector injector) { + LocalServices.removeServiceForTest(DevicePolicyManagerLiteInternal.class); + LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); + return injector; + } + public void notifyChangeToContentObserver(Uri uri, int userHandle) { ContentObserver co = mMockInjector.mContentObservers.get(new Pair<>(uri, userHandle)); if (co != null) { diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java index ea136da5f323..7b11876d0aa9 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java @@ -328,8 +328,6 @@ public class DevicePolicyManagerTest extends DpmTestBase { private void initializeDpms() { // Need clearCallingIdentity() to pass permission checks. final long ident = mContext.binder.clearCallingIdentity(); - LocalServices.removeServiceForTest(DevicePolicyManagerLiteInternal.class); - LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); @@ -417,8 +415,6 @@ public class DevicePolicyManagerTest extends DpmTestBase { when(getServices().packageManager.hasSystemFeature(eq(PackageManager.FEATURE_DEVICE_ADMIN))) .thenReturn(false); - LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); - LocalServices.removeServiceForTest(DevicePolicyManagerLiteInternal.class); new DevicePolicyManagerServiceTestable(getServices(), mContext); // If the device has no DPMS feature, it shouldn't register the local service. diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/NetworkEventTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/NetworkEventTest.java index 69aaf010d0e0..d55f3796f6cb 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/NetworkEventTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/NetworkEventTest.java @@ -27,7 +27,6 @@ import static org.mockito.Mockito.verify; import android.app.admin.ConnectEvent; import android.app.admin.DeviceAdminReceiver; -import android.app.admin.DevicePolicyManagerInternal; import android.app.admin.DnsEvent; import android.app.admin.NetworkEvent; import android.content.Intent; @@ -40,8 +39,6 @@ import android.os.UserHandle; import android.os.test.TestLooper; import android.test.suitebuilder.annotation.SmallTest; -import com.android.server.LocalServices; - import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; @@ -66,7 +63,6 @@ public class NetworkEventTest extends DpmTestBase { android.Manifest.permission.MANAGE_DEVICE_ADMINS); doNothing().when(mSpiedDpmMockContext).sendBroadcastAsUser(any(Intent.class), any(UserHandle.class)); - LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); mDpmTestable = new DevicePolicyManagerServiceTestable(getServices(), mSpiedDpmMockContext); setUpPackageManagerForAdmin(admin1, DpmMockContext.CALLER_UID); mDpmTestable.setActiveAdmin(admin1, true, DpmMockContext.CALLER_USER_HANDLE); |