Loading services/tests/servicestests/src/com/android/server/ForceAppStandbyTrackerTest.java +39 −9 Original line number Original line Diff line number Diff line Loading @@ -50,13 +50,16 @@ import android.os.PowerSaveState; import android.os.Process; import android.os.Process; import android.os.RemoteException; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserHandle; import android.provider.Settings; import android.support.test.filters.SmallTest; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import android.support.test.runner.AndroidJUnit4; import android.test.mock.MockContentResolver; import android.util.ArraySet; import android.util.ArraySet; import android.util.Pair; import android.util.Pair; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsService; import com.android.internal.app.IAppOpsService; import com.android.internal.util.test.FakeSettingsProvider; import com.android.server.ForceAppStandbyTracker.Listener; import com.android.server.ForceAppStandbyTracker.Listener; import org.junit.Before; import org.junit.Before; Loading Loading @@ -137,6 +140,9 @@ public class ForceAppStandbyTrackerTest { private Consumer<PowerSaveState> mPowerSaveObserver; private Consumer<PowerSaveState> mPowerSaveObserver; private BroadcastReceiver mReceiver; private BroadcastReceiver mReceiver; private MockContentResolver mMockContentResolver; private FakeSettingsProvider mFakeSettingsProvider; private boolean mPowerSaveMode; private boolean mPowerSaveMode; private final ArraySet<Pair<Integer, String>> mRestrictedPackages = new ArraySet(); private final ArraySet<Pair<Integer, String>> mRestrictedPackages = new ArraySet(); Loading Loading @@ -182,6 +188,11 @@ public class ForceAppStandbyTrackerTest { any(int[].class) any(int[].class) )).thenAnswer(inv -> new ArrayList<AppOpsManager.PackageOps>()); )).thenAnswer(inv -> new ArrayList<AppOpsManager.PackageOps>()); mMockContentResolver = new MockContentResolver(); mFakeSettingsProvider = new FakeSettingsProvider(); when(mMockContext.getContentResolver()).thenReturn(mMockContentResolver); mMockContentResolver.addProvider(Settings.AUTHORITY, mFakeSettingsProvider); // Call start. // Call start. instance.start(); instance.start(); Loading Loading @@ -495,8 +506,8 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); // Power save on. // Updating to the same state should not fire listener mPowerSaveMode = true; mPowerSaveMode = false; mPowerSaveObserver.accept(getPowerSaveState()); mPowerSaveObserver.accept(getPowerSaveState()); assertNoCallbacks(l); assertNoCallbacks(l); Loading Loading @@ -534,14 +545,14 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUidPackage(eq(UID_10_2), eq(PACKAGE_2)); verify(l, times(1)).unblockAlarmsForUidPackage(eq(UID_10_2), eq(PACKAGE_2)); reset(l); reset(l); setAppOps(UID_10_2, PACKAGE_2, false); setAppOps(UID_10_2, PACKAGE_2, false); verify(l, times(0)).updateAllJobs(); verify(l, times(0)).updateAllJobs(); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(1)).updateJobsForUidPackage(eq(UID_10_2), eq(PACKAGE_2)); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUid(anyInt()); Loading Loading @@ -634,10 +645,20 @@ public class ForceAppStandbyTrackerTest { mPowerSaveMode = true; mPowerSaveMode = true; mPowerSaveObserver.accept(getPowerSaveState()); mPowerSaveObserver.accept(getPowerSaveState()); verify(l, times(1)).updateAllJobs(); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); instance.setPowerSaveWhitelistAppIds(new int[] {UID_1, UID_2}, new int[] {}); instance.setPowerSaveWhitelistAppIds(new int[] {UID_1, UID_2}, new int[] {}); waitUntilMainHandlerDrain(); waitUntilMainHandlerDrain(); verify(l, times(1)).updateAllJobs(); // Called once for updating all whitelist and once for updating temp whitelist verify(l, times(2)).updateAllJobs(); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); Loading Loading @@ -699,7 +720,7 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(1)).unblockAlarmsForUid(eq(UID_10_1)); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); Loading @@ -723,7 +744,7 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(1)).unblockAlarmsForUid(eq(UID_10_1)); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); Loading @@ -743,6 +764,15 @@ public class ForceAppStandbyTrackerTest { mPowerSaveMode = false; mPowerSaveMode = false; mPowerSaveObserver.accept(getPowerSaveState()); mPowerSaveObserver.accept(getPowerSaveState()); verify(l, times(1)).updateAllJobs(); verify(l, times(0)).updateJobsForUid(eq(UID_10_1)); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(1)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); mIUidObserver.onUidActive(UID_10_1); mIUidObserver.onUidActive(UID_10_1); waitUntilMainHandlerDrain(); waitUntilMainHandlerDrain(); Loading @@ -751,7 +781,7 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(1)).unblockAlarmsForUid(eq(UID_10_1)); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); Loading @@ -775,7 +805,7 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(1)).unblockAlarmsForUid(eq(UID_10_1)); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); Loading Loading
services/tests/servicestests/src/com/android/server/ForceAppStandbyTrackerTest.java +39 −9 Original line number Original line Diff line number Diff line Loading @@ -50,13 +50,16 @@ import android.os.PowerSaveState; import android.os.Process; import android.os.Process; import android.os.RemoteException; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserHandle; import android.provider.Settings; import android.support.test.filters.SmallTest; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; import android.support.test.runner.AndroidJUnit4; import android.test.mock.MockContentResolver; import android.util.ArraySet; import android.util.ArraySet; import android.util.Pair; import android.util.Pair; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsService; import com.android.internal.app.IAppOpsService; import com.android.internal.util.test.FakeSettingsProvider; import com.android.server.ForceAppStandbyTracker.Listener; import com.android.server.ForceAppStandbyTracker.Listener; import org.junit.Before; import org.junit.Before; Loading Loading @@ -137,6 +140,9 @@ public class ForceAppStandbyTrackerTest { private Consumer<PowerSaveState> mPowerSaveObserver; private Consumer<PowerSaveState> mPowerSaveObserver; private BroadcastReceiver mReceiver; private BroadcastReceiver mReceiver; private MockContentResolver mMockContentResolver; private FakeSettingsProvider mFakeSettingsProvider; private boolean mPowerSaveMode; private boolean mPowerSaveMode; private final ArraySet<Pair<Integer, String>> mRestrictedPackages = new ArraySet(); private final ArraySet<Pair<Integer, String>> mRestrictedPackages = new ArraySet(); Loading Loading @@ -182,6 +188,11 @@ public class ForceAppStandbyTrackerTest { any(int[].class) any(int[].class) )).thenAnswer(inv -> new ArrayList<AppOpsManager.PackageOps>()); )).thenAnswer(inv -> new ArrayList<AppOpsManager.PackageOps>()); mMockContentResolver = new MockContentResolver(); mFakeSettingsProvider = new FakeSettingsProvider(); when(mMockContext.getContentResolver()).thenReturn(mMockContentResolver); mMockContentResolver.addProvider(Settings.AUTHORITY, mFakeSettingsProvider); // Call start. // Call start. instance.start(); instance.start(); Loading Loading @@ -495,8 +506,8 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); // Power save on. // Updating to the same state should not fire listener mPowerSaveMode = true; mPowerSaveMode = false; mPowerSaveObserver.accept(getPowerSaveState()); mPowerSaveObserver.accept(getPowerSaveState()); assertNoCallbacks(l); assertNoCallbacks(l); Loading Loading @@ -534,14 +545,14 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUidPackage(eq(UID_10_2), eq(PACKAGE_2)); verify(l, times(1)).unblockAlarmsForUidPackage(eq(UID_10_2), eq(PACKAGE_2)); reset(l); reset(l); setAppOps(UID_10_2, PACKAGE_2, false); setAppOps(UID_10_2, PACKAGE_2, false); verify(l, times(0)).updateAllJobs(); verify(l, times(0)).updateAllJobs(); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(1)).updateJobsForUidPackage(eq(UID_10_2), eq(PACKAGE_2)); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUid(anyInt()); Loading Loading @@ -634,10 +645,20 @@ public class ForceAppStandbyTrackerTest { mPowerSaveMode = true; mPowerSaveMode = true; mPowerSaveObserver.accept(getPowerSaveState()); mPowerSaveObserver.accept(getPowerSaveState()); verify(l, times(1)).updateAllJobs(); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); instance.setPowerSaveWhitelistAppIds(new int[] {UID_1, UID_2}, new int[] {}); instance.setPowerSaveWhitelistAppIds(new int[] {UID_1, UID_2}, new int[] {}); waitUntilMainHandlerDrain(); waitUntilMainHandlerDrain(); verify(l, times(1)).updateAllJobs(); // Called once for updating all whitelist and once for updating temp whitelist verify(l, times(2)).updateAllJobs(); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(0)).updateJobsForUid(anyInt()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); Loading Loading @@ -699,7 +720,7 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(1)).unblockAlarmsForUid(eq(UID_10_1)); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); Loading @@ -723,7 +744,7 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(1)).unblockAlarmsForUid(eq(UID_10_1)); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); Loading @@ -743,6 +764,15 @@ public class ForceAppStandbyTrackerTest { mPowerSaveMode = false; mPowerSaveMode = false; mPowerSaveObserver.accept(getPowerSaveState()); mPowerSaveObserver.accept(getPowerSaveState()); verify(l, times(1)).updateAllJobs(); verify(l, times(0)).updateJobsForUid(eq(UID_10_1)); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(1)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); mIUidObserver.onUidActive(UID_10_1); mIUidObserver.onUidActive(UID_10_1); waitUntilMainHandlerDrain(); waitUntilMainHandlerDrain(); Loading @@ -751,7 +781,7 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(1)).unblockAlarmsForUid(eq(UID_10_1)); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); Loading @@ -775,7 +805,7 @@ public class ForceAppStandbyTrackerTest { verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).updateJobsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAllUnrestrictedAlarms(); verify(l, times(0)).unblockAlarmsForUid(anyInt()); verify(l, times(1)).unblockAlarmsForUid(eq(UID_10_1)); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); verify(l, times(0)).unblockAlarmsForUidPackage(anyInt(), anyString()); reset(l); reset(l); Loading