diff options
| -rw-r--r-- | packages/SettingsLib/res/values/strings.xml | 8 | ||||
| -rw-r--r-- | packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java | 51 | 
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      } |