Merge "Make app predicates singleton"
This commit is contained in:
committed by
Android (Google) Code Review
commit
39bb6cec3e
@@ -28,9 +28,13 @@ import android.os.PowerManager;
|
||||
import com.android.internal.os.BatteryStatsHelper;
|
||||
import com.android.settings.fuelgauge.BatteryInfo;
|
||||
import com.android.settings.fuelgauge.BatteryUtils;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.AppLabelPredicate;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.AppRestrictionPredicate;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||
import com.android.settings.testutils.BatteryTestUtils;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -77,6 +81,12 @@ public class BatteryTipLoaderTest {
|
||||
mBatteryTipLoader.mBatteryUtils = mBatteryUtils;
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
BatteryTestUtils.clearStaticInstance(AppLabelPredicate.class, "sInstance");
|
||||
BatteryTestUtils.clearStaticInstance(AppRestrictionPredicate.class, "sInstance");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadBackground_containsAllTipsWithOrder() {
|
||||
final List<BatteryTip> batteryTips = mBatteryTipLoader.loadInBackground();
|
||||
|
@@ -17,6 +17,7 @@
|
||||
package com.android.settings.fuelgauge.batterytip;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
@@ -34,8 +34,11 @@ import com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper;
|
||||
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryDatabaseManager;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.AppLabelPredicate;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.AppRestrictionPredicate;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
|
||||
import com.android.settings.testutils.BatteryTestUtils;
|
||||
import com.android.settings.testutils.DatabaseTestUtils;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
|
||||
@@ -86,6 +89,7 @@ public class RestrictAppDetectorTest {
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mPolicy = spy(new BatteryTipPolicy(mContext));
|
||||
|
||||
doReturn(mContext).when(mContext).getApplicationContext();
|
||||
doReturn(mAppOpsManager).when(mContext).getSystemService(AppOpsManager.class);
|
||||
doReturn(AppOpsManager.MODE_IGNORED).when(mAppOpsManager).checkOpNoThrow(
|
||||
AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, RESTRICTED_UID, RESTRICTED_PACKAGE_NAME);
|
||||
@@ -103,7 +107,12 @@ public class RestrictAppDetectorTest {
|
||||
|
||||
mRestrictAppDetector = new RestrictAppDetector(mContext, mPolicy);
|
||||
mRestrictAppDetector.mBatteryDatabaseManager = mBatteryDatabaseManager;
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
BatteryTestUtils.clearStaticInstance(AppLabelPredicate.class, "sInstance");
|
||||
BatteryTestUtils.clearStaticInstance(AppRestrictionPredicate.class, "sInstance");
|
||||
}
|
||||
|
||||
@After
|
||||
|
@@ -34,9 +34,11 @@ import android.util.Pair;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
||||
import com.android.settings.testutils.BatteryTestUtils;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -74,6 +76,7 @@ public class RestrictAppTipTest {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
doReturn(mContext).when(mContext).getApplicationContext();
|
||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
||||
doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfo(PACKAGE_NAME,
|
||||
PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_ANY_USER);
|
||||
@@ -98,6 +101,12 @@ public class RestrictAppTipTest {
|
||||
mInvisibleBatteryTip = new RestrictAppTip(BatteryTip.StateType.INVISIBLE, new ArrayList<>());
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
BatteryTestUtils.clearStaticInstance(AppLabelPredicate.class, "sInstance");
|
||||
BatteryTestUtils.clearStaticInstance(AppRestrictionPredicate.class, "sInstance");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parcelable() {
|
||||
Parcel parcel = Parcel.obtain();
|
||||
|
@@ -19,6 +19,8 @@ package com.android.settings.testutils;
|
||||
import android.content.Intent;
|
||||
import android.os.BatteryManager;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class BatteryTestUtils {
|
||||
|
||||
public static Intent getChargingIntent() {
|
||||
@@ -47,4 +49,15 @@ public class BatteryTestUtils {
|
||||
return intent;
|
||||
}
|
||||
|
||||
public static void clearStaticInstance(Class clazz, String fieldName) {
|
||||
Field instance;
|
||||
try {
|
||||
instance = clazz.getDeclaredField(fieldName);
|
||||
instance.setAccessible(true);
|
||||
instance.set(null, null);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user