Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a17274fb authored by Nancy Zheng's avatar Nancy Zheng Committed by Android (Google) Code Review
Browse files

Merge "Fix ForceAppStandbyTrackerTest."

parents bd9b0cf9 a18c1f1d
Loading
Loading
Loading
Loading
+39 −9
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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();
@@ -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();


@@ -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);
@@ -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());
@@ -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());


@@ -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);


@@ -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);


@@ -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();
@@ -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);


@@ -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);