import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatteryStatsHelper;
-import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.R;
+import com.android.settings.fuelgauge.anomaly.Anomaly;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
private static final double BATTERY_OVERACCOUNTED_USAGE = 500;
private static final double BATTERY_UNACCOUNTED_USAGE = 700;
private static final double BATTERY_APP_USAGE = 100;
+ private static final double BATTERY_WIFI_USAGE = 200;
+ private static final double BATTERY_BLUETOOTH_USAGE = 300;
private static final double TOTAL_BATTERY_USAGE = 1000;
private static final double HIDDEN_USAGE = 200;
private static final int DISCHARGE_AMOUNT = 80;
@Mock
private BatterySipper mNormalBatterySipper;
@Mock
+ private BatterySipper mWifiBatterySipper;
+ @Mock
+ private BatterySipper mBluetoothBatterySipper;
+ @Mock
private BatterySipper mScreenBatterySipper;
@Mock
private BatterySipper mOvercountedBatterySipper;
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
mNormalBatterySipper.totalPowerMah = TOTAL_BATTERY_USAGE;
+ mWifiBatterySipper.drainType = BatterySipper.DrainType.WIFI;
+ mWifiBatterySipper.totalPowerMah = BATTERY_WIFI_USAGE;
+
+ mBluetoothBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH;
+ mBluetoothBatterySipper.totalPowerMah = BATTERY_BLUETOOTH_USAGE;
+
mScreenBatterySipper.drainType = BatterySipper.DrainType.SCREEN;
mScreenBatterySipper.totalPowerMah = BATTERY_SCREEN_USAGE;
sippers.add(mSystemBatterySipper);
sippers.add(mOvercountedBatterySipper);
sippers.add(mUnaccountedBatterySipper);
+ sippers.add(mWifiBatterySipper);
+ sippers.add(mBluetoothBatterySipper);
when(mProvider.isTypeSystem(mSystemBatterySipper))
.thenReturn(true);
doNothing().when(mBatteryUtils).smearScreenBatterySipper(any(), any());
}
@Test
+ public void testShouldHideSipper_TypeWifi_ReturnTrue() {
+ mNormalBatterySipper.drainType = BatterySipper.DrainType.WIFI;
+ assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
+ }
+
+ @Test
+ public void testShouldHideSipper_TypeBluetooth_ReturnTrue() {
+ mNormalBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH;
+ assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
+ }
+
+ @Test
public void testShouldHideSipper_TypeSystem_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
when(mNormalBatterySipper.getUid()).thenReturn(Process.ROOT_UID);
mBatteryStatsHelper, currentTimeMs)).isEqualTo(TIME_SINCE_LAST_FULL_CHARGE_MS);
}
+ @Test
+ public void testGetSummaryResIdFromAnomalyType() {
+ assertThat(mBatteryUtils.getSummaryResIdFromAnomalyType(Anomaly.AnomalyType.WAKE_LOCK))
+ .isEqualTo(R.string.battery_abnormal_wakelock_summary);
+ assertThat(mBatteryUtils.getSummaryResIdFromAnomalyType(Anomaly.AnomalyType.WAKEUP_ALARM))
+ .isEqualTo(R.string.battery_abnormal_wakeup_alarm_summary);
+ assertThat(mBatteryUtils.getSummaryResIdFromAnomalyType(Anomaly.AnomalyType.BLUETOOTH_SCAN))
+ .isEqualTo(R.string.battery_abnormal_location_summary);
+ }
+
private BatterySipper createTestSmearBatterySipper(long activityTime, double totalPowerMah,
int uidCode, boolean isUidNull) {
final BatterySipper sipper = mock(BatterySipper.class);