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:
@@ -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(
|
||||
|
Reference in New Issue
Block a user