Unrestricting app when put on power whitelist
Power whitelisting and background restrictions are opposing rules, so to keep apps out of confusing states, unrestricting an app whenever it is put on the power whitelist. Test: atest RunSettingsRoboTests:HighPowerDetailTest Bug: 77924141 Change-Id: I4952ac6c893bc7e98aa1b6ad3a86906fc299dea5
This commit is contained in:
@@ -18,27 +18,49 @@ package com.android.settings.fuelgauge;
|
||||
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.AppOpsManager;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class HighPowerDetailTest {
|
||||
private static final int TEST_UID = 12000;
|
||||
private static final String TEST_PACKAGE = "com.test.package";
|
||||
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
private HighPowerDetail mFragment;
|
||||
|
||||
@Mock
|
||||
private PowerWhitelistBackend mPowerWhitelistBackend;
|
||||
@Mock
|
||||
private BatteryUtils mBatteryUtils;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mFragment = spy(new HighPowerDetail());
|
||||
mFragment.mBackend = mPowerWhitelistBackend;
|
||||
mFragment.mBatteryUtils = mBatteryUtils;
|
||||
mFragment.mPackageUid = TEST_UID;
|
||||
mFragment.mPackageName = TEST_PACKAGE;
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -53,4 +75,13 @@ public class HighPowerDetailTest {
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(any(Context.class),
|
||||
eq(MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_BATTERY_ALLOW), eq("app"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onClick_appAddedToDozeWhitelist_getsUnrestricted() {
|
||||
mFragment.mIsEnabled = true;
|
||||
when(mPowerWhitelistBackend.isWhitelisted(TEST_PACKAGE)).thenReturn(false);
|
||||
mFragment.onClick(null, DialogInterface.BUTTON_POSITIVE);
|
||||
verify(mBatteryUtils).setForceAppStandby(TEST_UID, TEST_PACKAGE,
|
||||
AppOpsManager.MODE_ALLOWED);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user