From deeb08fdcb2ccf90d013a9e909122e1a997c40bb Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Fri, 24 Mar 2017 15:53:14 -0700 Subject: [PATCH] Uncomment a test. It was commented earlier because of a crash. Since that issue has been fixed, uncomment the test. Bug: 27803922 Test: runtest -c com.android.server.am.ActivityManagerServiceTest frameworks-services Change-Id: I5f2b1b0bffe032633f42c8c34ed8a7ae5a3dfc10 --- .../server/am/ActivityManagerService.java | 5 +++++ .../server/am/ActivityManagerServiceTest.java | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 272fbf86aeddc..7a83436493b83 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -2743,6 +2743,7 @@ public class ActivityManagerService extends IActivityManager.Stub @VisibleForTesting public ActivityManagerService(Injector injector) { mInjector = injector; + mContext = mInjector.getContext(); GL_ES_VERSION = 0; mActivityStarter = null; mAppErrors = null; @@ -23875,6 +23876,10 @@ public class ActivityManagerService extends IActivityManager.Stub public static class Injector { private NetworkManagementInternal mNmi; + public Context getContext() { + return null; + } + public AppOpsService getAppOpsService(File file, Handler handler) { return new AppOpsService(file, handler); } diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java index b12da34f43755..1e038dfaf1af2 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java @@ -51,7 +51,9 @@ import android.app.ActivityManager; import android.app.AppOpsManager; import android.app.IApplicationThread; import android.app.IUidObserver; +import android.content.Context; import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; @@ -116,7 +118,9 @@ public class ActivityManagerServiceTest { UidRecord.CHANGE_ACTIVE }; + @Mock private Context mContext; @Mock private AppOpsService mAppOpsService; + @Mock private PackageManager mPackageManager; private TestInjector mInjector; private ActivityManagerService mAms; @@ -133,6 +137,8 @@ public class ActivityManagerServiceTest { mInjector = new TestInjector(); mAms = new ActivityManagerService(mInjector); mAms.mWaitForNetworkTimeoutMs = 100; + + when(mContext.getPackageManager()).thenReturn(mPackageManager); } @After @@ -601,10 +607,12 @@ public class ActivityManagerServiceTest { uidRecord.pendingChange = changeItem; uidRecord.curProcStateSeq = TEST_PROC_STATE_SEQ2; verifyLastProcStateSeqUpdated(uidRecord, -1, TEST_PROC_STATE_SEQ2); + } + @Test + public void testEnqueueUidChangeLocked_nullUidRecord() { // Use "null" uidRecord to make sure there is no crash. - // TODO: currently it crashes, uncomment after fixing it. - // mAms.enqueueUidChangeLocked(null, TEST_UID, UidRecord.CHANGE_ACTIVE); + mAms.enqueueUidChangeLocked(null, TEST_UID, UidRecord.CHANGE_ACTIVE); } private void verifyLastProcStateSeqUpdated(UidRecord uidRecord, int uid, long curProcstateSeq) { @@ -769,6 +777,11 @@ public class ActivityManagerServiceTest { private class TestInjector extends Injector { private boolean mRestricted = true; + @Override + public Context getContext() { + return mContext; + } + @Override public AppOpsService getAppOpsService(File file, Handler handler) { return mAppOpsService;