Add test flags for battery tips.

When this flag is true, we will show related battery tip by force.
Then we can manually test and verify the UI behavior.

Following CL will add test flag for "app restriction" since it is
a little tricky.

Bug: 77477035
Test: RunSettingsRoboTests

Change-Id: Ib12ff4aa8bcc998ea6a73f461c3d5f7fcc39b019
This commit is contained in:
Lei Yu
2018-04-06 14:12:41 -07:00
parent 78e2cad8b1
commit 21bde3afe4
8 changed files with 87 additions and 8 deletions

View File

@@ -45,7 +45,10 @@ public class BatteryTipPolicyTest {
+ ",low_battery_enabled=false"
+ ",low_battery_hour=10"
+ ",data_history_retain_day=24"
+ ",excessive_bg_drain_percentage=25";
+ ",excessive_bg_drain_percentage=25"
+ ",test_battery_saver_tip=true"
+ ",test_high_usage_tip=false"
+ ",test_smart_battery_tip=true";
private Context mContext;
@Before
@@ -74,6 +77,9 @@ public class BatteryTipPolicyTest {
assertThat(batteryTipPolicy.lowBatteryHour).isEqualTo(10);
assertThat(batteryTipPolicy.dataHistoryRetainDay).isEqualTo(24);
assertThat(batteryTipPolicy.excessiveBgDrainPercentage).isEqualTo(25);
assertThat(batteryTipPolicy.testBatterySaverTip).isTrue();
assertThat(batteryTipPolicy.testHighUsageTip).isFalse();
assertThat(batteryTipPolicy.testSmartBatteryTip).isTrue();
}
@Test
@@ -97,5 +103,8 @@ public class BatteryTipPolicyTest {
assertThat(batteryTipPolicy.lowBatteryHour).isEqualTo(16);
assertThat(batteryTipPolicy.dataHistoryRetainDay).isEqualTo(30);
assertThat(batteryTipPolicy.excessiveBgDrainPercentage).isEqualTo(10);
assertThat(batteryTipPolicy.testBatterySaverTip).isFalse();
assertThat(batteryTipPolicy.testHighUsageTip).isFalse();
assertThat(batteryTipPolicy.testSmartBatteryTip).isFalse();
}
}

View File

@@ -74,6 +74,16 @@ public class EarlyWarningDetectorTest {
assertThat(mEarlyWarningDetector.detect().isVisible()).isFalse();
}
@Test
public void testDetect_testFeatureOn_tipNew() {
doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider)
.getEarlyWarningSignal(any(), any());
ReflectionHelpers.setField(mPolicy, "testBatterySaverTip", true);
assertThat(mEarlyWarningDetector.detect().getState())
.isEqualTo(BatteryTip.StateType.NEW);
}
@Test
public void testDetect_batterySaverOn_tipHandled() {
doReturn(true).when(mPowerManager).isPowerSaveMode();

View File

@@ -34,6 +34,7 @@ import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.fuelgauge.batterytip.AppInfo;
import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
import com.android.settings.fuelgauge.batterytip.HighUsageDataParser;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.fuelgauge.batterytip.tips.HighUsageTip;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -108,6 +109,14 @@ public class HighUsageDetectorTest {
assertThat(mHighUsageDetector.detect().isVisible()).isFalse();
}
@Test
public void testDetect_testFeatureOn_tipNew() {
doReturn(false).when(mDataParser).isDeviceHeavilyUsed();
ReflectionHelpers.setField(mPolicy, "testHighUsageTip", true);
assertThat(mHighUsageDetector.detect().getState()).isEqualTo(BatteryTip.StateType.NEW);
}
@Test
public void testDetect_containsHighUsageApp_tipVisible() {
doReturn(true).when(mDataParser).isDeviceHeavilyUsed();

View File

@@ -24,6 +24,7 @@ import android.content.Context;
import android.provider.Settings;
import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -31,6 +32,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
public class SmartBatteryDetectorTest {
@@ -38,6 +40,7 @@ public class SmartBatteryDetectorTest {
private Context mContext;
private ContentResolver mContentResolver;
private SmartBatteryDetector mSmartBatteryDetector;
private BatteryTipPolicy mPolicy;
@Before
public void setUp() {
@@ -45,8 +48,15 @@ public class SmartBatteryDetectorTest {
mContext = RuntimeEnvironment.application;
mContentResolver = mContext.getContentResolver();
final BatteryTipPolicy policy = spy(new BatteryTipPolicy(mContext));
mSmartBatteryDetector = new SmartBatteryDetector(policy, mContentResolver);
mPolicy = spy(new BatteryTipPolicy(mContext));
mSmartBatteryDetector = new SmartBatteryDetector(mPolicy, mContentResolver);
}
@Test
public void testDetect_testFeatureOn_tipNew() {
ReflectionHelpers.setField(mPolicy, "testSmartBatteryTip", true);
assertThat(mSmartBatteryDetector.detect().getState()).isEqualTo(BatteryTip.StateType.NEW);
}
@Test