Make "Battery usage" accessible at any time
Before this cl, user could go to "Battery usage" page only if related app has battery usage. This cl breaks this rule so we could open "Battery usage" without battery data. Bug: 38497822 Test: RunSettingsRoboTests Change-Id: Ic53c33b7dcbac82de58f31cf96e0bd8fa54e53ea
This commit is contained in:
@@ -20,6 +20,8 @@ package com.android.settings.applications;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyDouble;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@@ -46,10 +48,12 @@ import android.widget.Button;
|
||||
|
||||
import com.android.internal.os.BatterySipper;
|
||||
import com.android.internal.os.BatteryStatsHelper;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.applications.instantapps.InstantAppButtonsController;
|
||||
import com.android.settings.fuelgauge.BatteryUtils;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settingslib.applications.AppUtils;
|
||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||
@@ -77,6 +81,8 @@ public final class InstalledAppDetailsTest {
|
||||
private static final String PACKAGE_NAME = "test_package_name";
|
||||
private static final int TARGET_UID = 111;
|
||||
private static final int OTHER_UID = 222;
|
||||
private static final double BATTERY_LEVEL = 60;
|
||||
private static final String BATTERY_LEVEL_STRING = "60%";
|
||||
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private Context mContext;
|
||||
@@ -89,20 +95,21 @@ public final class InstalledAppDetailsTest {
|
||||
@Mock
|
||||
private DevicePolicyManager mDevicePolicyManager;
|
||||
@Mock
|
||||
private Preference mBatteryPreference;
|
||||
@Mock
|
||||
private BatterySipper mBatterySipper;
|
||||
@Mock
|
||||
private BatterySipper mOtherBatterySipper;
|
||||
@Mock
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private BatteryStatsHelper mBatteryStatsHelper;
|
||||
@Mock
|
||||
private BatteryStats.Uid mUid;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
@Mock
|
||||
private BatteryUtils mBatteryUtils;
|
||||
|
||||
private InstalledAppDetails mAppDetail;
|
||||
private Context mShadowContext;
|
||||
private Preference mBatteryPreference;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -110,6 +117,10 @@ public final class InstalledAppDetailsTest {
|
||||
|
||||
mShadowContext = RuntimeEnvironment.application;
|
||||
mAppDetail = spy(new InstalledAppDetails());
|
||||
mAppDetail.mBatteryUtils = mBatteryUtils;
|
||||
|
||||
mBatteryPreference = new Preference(mShadowContext);
|
||||
mAppDetail.mBatteryPreference = mBatteryPreference;
|
||||
|
||||
mBatterySipper.drainType = BatterySipper.DrainType.IDLE;
|
||||
mBatterySipper.uidObj = mUid;
|
||||
@@ -409,4 +420,42 @@ public final class InstalledAppDetailsTest {
|
||||
assertThat(mAppDetail.findTargetSipper(mBatteryStatsHelper, TARGET_UID)).isEqualTo(
|
||||
mBatterySipper);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateBattery_noBatteryStats_summaryNo() {
|
||||
doReturn(mShadowContext.getString(R.string.no_battery_summary)).when(mAppDetail).getString(
|
||||
R.string.no_battery_summary);
|
||||
mAppDetail.updateBattery();
|
||||
|
||||
assertThat(mBatteryPreference.getSummary()).isEqualTo(
|
||||
"No battery use since last full charge");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateBattery_hasBatteryStats_summaryPercent() {
|
||||
mAppDetail.mBatteryHelper = mBatteryStatsHelper;
|
||||
mAppDetail.mSipper = mBatterySipper;
|
||||
doReturn(BATTERY_LEVEL).when(mBatteryUtils).calculateBatteryPercent(anyDouble(),
|
||||
anyDouble(), anyDouble(), anyInt());
|
||||
doReturn(mShadowContext.getString(R.string.battery_summary, BATTERY_LEVEL_STRING)).when(
|
||||
mAppDetail).getString(R.string.battery_summary, BATTERY_LEVEL_STRING);
|
||||
doReturn(new ArrayList<>()).when(mBatteryStatsHelper).getUsageList();
|
||||
|
||||
mAppDetail.updateBattery();
|
||||
|
||||
assertThat(mBatteryPreference.getSummary()).isEqualTo("60% use since last full charge");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isBatteryStatsAvailable_hasBatteryStatsHelperAndSipper_returnTrue() {
|
||||
mAppDetail.mBatteryHelper = mBatteryStatsHelper;
|
||||
mAppDetail.mSipper = mBatterySipper;
|
||||
|
||||
assertThat(mAppDetail.isBatteryStatsAvailable()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isBatteryStatsAvailable_parametersNull_returnFalse() {
|
||||
assertThat(mAppDetail.isBatteryStatsAvailable()).isFalse();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user