Transition BatteryAppListPreferences to BatteryUsageStats API

Bug: 173745486
Test: make RunSettingsRoboTests
Test: male RunSettingsGoogleRoboTests

Change-Id: I7af8cbcd27433b89cb2184750c6854aa74761d0d
This commit is contained in:
Dmitri Plotnikov
2021-03-08 20:11:54 -08:00
parent dba51aa233
commit 036dc189b6
13 changed files with 574 additions and 675 deletions

View File

@@ -49,6 +49,7 @@ import android.os.BatteryStatsManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Process;
import android.os.SystemBatteryConsumer;
import android.os.SystemClock;
import android.os.UserManager;
@@ -119,6 +120,8 @@ public class BatteryUtilsTest {
@Mock
private BatteryStats.Timer mTimer;
@Mock
private SystemBatteryConsumer mSystemBatteryConsumer;
@Mock
private BatterySipper mNormalBatterySipper;
@Mock
private BatterySipper mWifiBatterySipper;
@@ -283,21 +286,54 @@ public class BatteryUtilsTest {
}
@Test
public void testRemoveHiddenBatterySippers_ContainsHiddenSippers_RemoveAndReturnValue() {
final List<BatterySipper> sippers = new ArrayList<>();
sippers.add(mNormalBatterySipper);
sippers.add(mScreenBatterySipper);
sippers.add(mSystemBatterySipper);
sippers.add(mOvercountedBatterySipper);
sippers.add(mUnaccountedBatterySipper);
sippers.add(mWifiBatterySipper);
sippers.add(mBluetoothBatterySipper);
sippers.add(mIdleBatterySipper);
when(mProvider.isTypeSystem(mSystemBatterySipper)).thenReturn(true);
public void testShouldHideSystemConsumer_TypeIdle_ReturnTrue() {
when(mSystemBatteryConsumer.getDrainType())
.thenReturn(SystemBatteryConsumer.DRAIN_TYPE_IDLE);
assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
}
mBatteryUtils.removeHiddenBatterySippers(sippers);
@Test
public void testShouldHideSystemConsumer_TypeMobileRadio_ReturnTrue() {
when(mSystemBatteryConsumer.getDrainType())
.thenReturn(SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO);
assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
}
assertThat(sippers).containsExactly(mNormalBatterySipper);
@Test
public void testShouldHideSystemConsumer_TypeScreen_ReturnTrue() {
when(mSystemBatteryConsumer.getDrainType())
.thenReturn(SystemBatteryConsumer.DRAIN_TYPE_SCREEN);
assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
}
@Test
public void testShouldHideSystemConsumer_TypeBluetooth_ReturnTrue() {
when(mSystemBatteryConsumer.getDrainType())
.thenReturn(SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH);
assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
}
@Test
public void testShouldHideSystemConsumer_TypeWifi_ReturnTrue() {
when(mSystemBatteryConsumer.getDrainType())
.thenReturn(SystemBatteryConsumer.DRAIN_TYPE_WIFI);
assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
}
@Test
public void testShouldHideSystemConsumer_LowPower_ReturnTrue() {
when(mSystemBatteryConsumer.getDrainType())
.thenReturn(SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT);
when(mSystemBatteryConsumer.getConsumedPower()).thenReturn(0.0005);
assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
}
@Test
public void testShouldHideSystemConsumer_HighPower_ReturnFalse() {
when(mSystemBatteryConsumer.getDrainType())
.thenReturn(SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT);
when(mSystemBatteryConsumer.getConsumedPower()).thenReturn(0.5);
assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isFalse();
}
@Test
@@ -388,19 +424,6 @@ public class BatteryUtilsTest {
BatteryStats.STATS_SINCE_CHARGED)).isEqualTo(TIME_SINCE_LAST_FULL_CHARGE_MS);
}
@Test
public void testSortUsageList() {
final List<BatterySipper> sippers = new ArrayList<>();
sippers.add(mNormalBatterySipper);
sippers.add(mScreenBatterySipper);
sippers.add(mSystemBatterySipper);
mBatteryUtils.sortUsageList(sippers);
assertThat(sippers).containsExactly(mNormalBatterySipper, mSystemBatterySipper,
mScreenBatterySipper);
}
@Test
public void testCalculateLastFullChargeTime() {
final long currentTimeMs = System.currentTimeMillis();
@@ -469,30 +492,6 @@ public class BatteryUtilsTest {
mUserManager.getUserProfiles());
}
@Test
public void testFindBatterySipperByType_findTypeScreen() {
BatterySipper sipper = mBatteryUtils.findBatterySipperByType(mUsageList,
BatterySipper.DrainType.SCREEN);
assertThat(sipper).isSameInstanceAs(mScreenBatterySipper);
}
@Test
public void testFindBatterySipperByType_findTypeApp() {
BatterySipper sipper = mBatteryUtils.findBatterySipperByType(mUsageList,
BatterySipper.DrainType.APP);
assertThat(sipper).isSameInstanceAs(mNormalBatterySipper);
}
@Test
public void testCalculateScreenUsageTime_returnCorrectTime() {
mScreenBatterySipper.usageTimeMs = TIME_EXPECTED_FOREGROUND;
assertThat(mBatteryUtils.calculateScreenUsageTime(mBatteryStatsHelper)).isEqualTo(
TIME_EXPECTED_FOREGROUND);
}
@Test
public void testIsPreOApp_SdkLowerThanO_ReturnTrue() {
assertThat(mBatteryUtils.isPreOApp(LOW_SDK_PACKAGE)).isTrue();