Add sanity check method for BatteryTip

This method is used to check whether data in battery tip is still
valid. If not, try recover the data or dismiss the tip.

Change-Id: Idc9e4d49f99e33d3f5e82e694dc78227fc1da41c
Fixes: 111218723
Test: RunSettingsRoboTests
This commit is contained in:
Lei Yu
2018-07-09 14:53:55 -07:00
committed by jackqdyulei
parent 636cc6caf9
commit b07d1f34c6
4 changed files with 54 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -51,6 +52,7 @@ import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
public class RestrictAppTipTest {
private static final String PACKAGE_NAME = "com.android.app";
private static final String UNINSTALL_PACKAGE_NAME = "com.android.app.unintall";
private static final String DISPLAY_NAME = "app";
private static final int ANOMALY_WAKEUP = 0;
private static final int ANOMALY_WAKELOCK = 1;
@@ -61,6 +63,7 @@ public class RestrictAppTipTest {
private RestrictAppTip mInvisibleBatteryTip;
private List<AppInfo> mUsageAppList;
private AppInfo mAppInfo;
private AppInfo mUninstallAppInfo;
@Mock
private ApplicationInfo mApplicationInfo;
@Mock
@@ -76,6 +79,9 @@ public class RestrictAppTipTest {
doReturn(mPackageManager).when(mContext).getPackageManager();
doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfo(PACKAGE_NAME,
PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_ANY_USER);
doThrow(new PackageManager.NameNotFoundException()).when(mPackageManager)
.getApplicationInfo(UNINSTALL_PACKAGE_NAME,
PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_ANY_USER);
doReturn(DISPLAY_NAME).when(mApplicationInfo).loadLabel(mPackageManager);
mAppInfo = new AppInfo.Builder()
@@ -83,6 +89,10 @@ public class RestrictAppTipTest {
.addAnomalyType(ANOMALY_WAKEUP)
.addAnomalyType(ANOMALY_WAKELOCK)
.build();
mUninstallAppInfo = new AppInfo.Builder()
.setPackageName(UNINSTALL_PACKAGE_NAME)
.addAnomalyType(ANOMALY_WAKEUP)
.build();
mUsageAppList = new ArrayList<>();
mUsageAppList.add(mAppInfo);
mNewBatteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, mUsageAppList);
@@ -173,6 +183,29 @@ public class RestrictAppTipTest {
assertThat(mInvisibleBatteryTip.getRestrictAppList()).containsExactly(mAppInfo);
}
@Test
public void sanityCheck_appUninstalled_stateInvisible() {
final List<AppInfo> appInfos = new ArrayList<>();
appInfos.add(mUninstallAppInfo);
final BatteryTip batteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, appInfos);
batteryTip.sanityCheck(mContext);
assertThat(batteryTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE);
}
@Test
public void sanityCheck_twoRestrictedAppsWhileUninstallOne_stateVisible() {
final List<AppInfo> appInfos = new ArrayList<>();
appInfos.add(mAppInfo);
appInfos.add(mUninstallAppInfo);
final BatteryTip batteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, appInfos);
batteryTip.sanityCheck(mContext);
assertThat(batteryTip.getState()).isEqualTo(BatteryTip.StateType.NEW);
}
@Test
public void toString_containsAppData() {
assertThat(mNewBatteryTip.toString()).isEqualTo(