summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/res/values/strings.xml8
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java51
2 files changed, 32 insertions, 27 deletions
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index a75b147a4901..d88bc9c3f344 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -888,13 +888,13 @@
<string name="power_remaining_duration_only_short"><xliff:g id="time">%1$s</xliff:g> left</string>
<!-- [CHAR_LIMIT=100] Label for enhanced estimated time that phone will run out of battery -->
- <string name="power_discharge_by_enhanced">Will last until about about <xliff:g id="time">%1$s</xliff:g> based on your usage (<xliff:g id="level">%2$s</xliff:g>)</string>
+ <string name="power_discharge_by_enhanced">Will last until about <xliff:g id="time">%1$s</xliff:g> based on your usage (<xliff:g id="level">%2$s</xliff:g>)</string>
<!-- [CHAR_LIMIT=100] Label for enhanced estimated time that phone will run out of battery with no percentage -->
- <string name="power_discharge_by_only_enhanced">Will last until about about <xliff:g id="time">%1$s</xliff:g> based on your usage</string>
+ <string name="power_discharge_by_only_enhanced">Will last until about <xliff:g id="time">%1$s</xliff:g> based on your usage</string>
<!-- [CHAR_LIMIT=100] Label for estimated time that phone will run out of battery -->
- <string name="power_discharge_by">Will last until about about <xliff:g id="time">%1$s</xliff:g> (<xliff:g id="level">%2$s</xliff:g>)</string>
+ <string name="power_discharge_by">Will last until about <xliff:g id="time">%1$s</xliff:g> (<xliff:g id="level">%2$s</xliff:g>)</string>
<!-- [CHAR_LIMIT=100] Label for estimated time that phone will run out of battery -->
- <string name="power_discharge_by_only">Will last until about about <xliff:g id="time">%1$s</xliff:g></string>
+ <string name="power_discharge_by_only">Will last until about <xliff:g id="time">%1$s</xliff:g></string>
<!-- [CHAR_LIMIT=60] label for estimated remaining duration of battery when under a certain amount -->
<string name="power_remaining_less_than_duration_only">Less than <xliff:g id="threshold">%1$s</xliff:g> remaining</string>
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
index c42ff083ff11..5758467766a8 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
@@ -21,35 +21,31 @@ import static org.mockito.Mockito.spy;
import android.content.Context;
-import com.android.settingslib.R;
import com.android.settingslib.SettingsLibRobolectricTestRunner;
-import java.time.Clock;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import java.time.Duration;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowSettings.ShadowSystem;
-import org.robolectric.shadows.ShadowSystemClock;
+import java.util.regex.Pattern;
@RunWith(SettingsLibRobolectricTestRunner.class)
public class PowerUtilTest {
public static final String TEST_BATTERY_LEVEL_10 = "10%";
- public static final String FIFTEEN_MIN_FORMATTED = "15m";
public static final long SEVENTEEN_MIN_MILLIS = Duration.ofMinutes(17).toMillis();
public static final long FIVE_MINUTES_MILLIS = Duration.ofMinutes(5).toMillis();
public static final long TEN_MINUTES_MILLIS = Duration.ofMinutes(10).toMillis();
public static final long THREE_DAYS_MILLIS = Duration.ofDays(3).toMillis();
public static final long THIRTY_HOURS_MILLIS = Duration.ofHours(30).toMillis();
- public static final String TWO_DAYS_FORMATTED = "2 days";
- public static final String THIRTY_HOURS_FORMATTED = "1d 6h";
public static final String NORMAL_CASE_EXPECTED_PREFIX = "Will last until about";
- public static final String ENHANCED_SUFFIX = "based on your usage";
+ public static final String ENHANCED_SUFFIX = " based on your usage";
+ // matches a time (ex: '1:15 PM', '2 AM')
+ public static final String TIME_OF_DAY_REGEX = " (\\d)+:?(\\d)* (AM)|(PM)";
+ // matches a percentage with parenthesis (ex: '(10%)')
+ public static final String PERCENTAGE_REGEX = " \\(\\d?\\d%\\)";
private Context mContext;
@@ -60,7 +56,6 @@ public class PowerUtilTest {
}
@Test
- @Config(shadows = {ShadowSystemClock.class})
public void testGetBatteryRemainingStringFormatted_moreThanFifteenMinutes_withPercentage() {
String info = PowerUtil.getBatteryRemainingStringFormatted(mContext,
SEVENTEEN_MIN_MILLIS,
@@ -72,13 +67,18 @@ public class PowerUtilTest {
false /* basedOnUsage */);
// We only add special mention for the long string
- assertThat(info).contains(NORMAL_CASE_EXPECTED_PREFIX);
- assertThat(info).contains(ENHANCED_SUFFIX);
- assertThat(info).contains("%");
+ // ex: Will last about 1:15 PM based on your usage (10%)
+ assertThat(info).containsMatch(Pattern.compile(
+ NORMAL_CASE_EXPECTED_PREFIX
+ + TIME_OF_DAY_REGEX
+ + ENHANCED_SUFFIX
+ + PERCENTAGE_REGEX));
// shortened string should not have extra text
- assertThat(info2).contains(NORMAL_CASE_EXPECTED_PREFIX);
- assertThat(info2).doesNotContain(ENHANCED_SUFFIX);
- assertThat(info2).contains("%");
+ // ex: Will last about 1:15 PM (10%)
+ assertThat(info2).containsMatch(Pattern.compile(
+ NORMAL_CASE_EXPECTED_PREFIX
+ + TIME_OF_DAY_REGEX
+ + PERCENTAGE_REGEX));
}
@Test
@@ -93,13 +93,18 @@ public class PowerUtilTest {
false /* basedOnUsage */);
// We only have % when it is provided
- assertThat(info).contains(NORMAL_CASE_EXPECTED_PREFIX);
- assertThat(info).contains(ENHANCED_SUFFIX);
- assertThat(info).doesNotContain("%");
+ // ex: Will last about 1:15 PM based on your usage
+ assertThat(info).containsMatch(Pattern.compile(
+ NORMAL_CASE_EXPECTED_PREFIX
+ + TIME_OF_DAY_REGEX
+ + ENHANCED_SUFFIX
+ + "(" + PERCENTAGE_REGEX + "){0}")); // no percentage
// shortened string should not have extra text
- assertThat(info2).contains(NORMAL_CASE_EXPECTED_PREFIX);
- assertThat(info2).doesNotContain(ENHANCED_SUFFIX);
- assertThat(info2).doesNotContain("%");
+ // ex: Will last about 1:15 PM
+ assertThat(info2).containsMatch(Pattern.compile(
+ NORMAL_CASE_EXPECTED_PREFIX
+ + TIME_OF_DAY_REGEX
+ + "(" + PERCENTAGE_REGEX + "){0}")); // no percentage
}