diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 072f558..eee961d 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -133,7 +133,7 @@
 
         bindViewHolder();
         assertThat(mCarrierInfo.getText().toString())
-                .isEqualTo("Updated by " + DUMMY_CARRIER + " " + baseUnit + "d ago");
+                .isEqualTo("Updated by " + DUMMY_CARRIER + " " + baseUnit + " days ago");
     }
 
     @Test
@@ -148,7 +148,7 @@
 
         bindViewHolder();
         assertThat(mCarrierInfo.getText().toString())
-                .isEqualTo("Updated by " + DUMMY_CARRIER + " " + baseUnit + "h ago");
+                .isEqualTo("Updated by " + DUMMY_CARRIER + " " + baseUnit + " hr ago");
     }
 
     @Test
@@ -163,7 +163,7 @@
 
         bindViewHolder();
         assertThat(mCarrierInfo.getText().toString())
-                .isEqualTo("Updated by " + DUMMY_CARRIER + " " + baseUnit + "m ago");
+                .isEqualTo("Updated by " + DUMMY_CARRIER + " " + baseUnit + " min ago");
     }
 
     @Test
@@ -199,7 +199,7 @@
 
         bindViewHolder();
         assertThat(mCarrierInfo.getText().toString())
-                .isEqualTo("Updated 2m ago");
+                .isEqualTo("Updated 2 min ago");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 929f3c3..b7bcb95 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -418,8 +418,8 @@
 
         mFragment.initPreference();
 
-        assertThat(mForegroundPreference.getSummary().toString()).isEqualTo("Used for 0m");
-        assertThat(mBackgroundPreference.getSummary().toString()).isEqualTo("Active for 0m");
+        assertThat(mForegroundPreference.getSummary().toString()).isEqualTo("Used for 0 min");
+        assertThat(mBackgroundPreference.getSummary().toString()).isEqualTo("Active for 0 min");
         assertThat(mPowerUsagePreference.getSummary()).isEqualTo("16% of total app usage (150mAh)");
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
index 8156428..afedd5b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryAppListPreferenceControllerTest.java
@@ -141,7 +141,7 @@
 
         mPreferenceController.setUsageSummary(mPreference, mNormalBatterySipper);
 
-        assertThat(mPreference.getSummary().toString()).isEqualTo("Used for 2m");
+        assertThat(mPreference.getSummary().toString()).isEqualTo("Used for 2 min");
     }
 
     @Test
@@ -152,7 +152,7 @@
 
         mPreferenceController.setUsageSummary(mPreference, mNormalBatterySipper);
 
-        assertThat(mPreference.getSummary().toString()).isEqualTo("2m");
+        assertThat(mPreference.getSummary().toString()).isEqualTo("2 min");
     }
 
     @Test
@@ -163,7 +163,7 @@
 
         mPreferenceController.setUsageSummary(mPreference, mNormalBatterySipper);
 
-        assertThat(mPreference.getSummary().toString()).isEqualTo("2m");
+        assertThat(mPreference.getSummary().toString()).isEqualTo("2 min");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 654f7fc..99967f7 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -61,16 +61,16 @@
 public class BatteryInfoTest {
 
     private static final String STATUS_CHARGING_NO_TIME = "50% - charging";
-    private static final String STATUS_CHARGING_TIME = "50% - 0m until fully charged";
+    private static final String STATUS_CHARGING_TIME = "50% - 0 min until fully charged";
     private static final String STATUS_NOT_CHARGING = "Not charging";
     private static final long REMAINING_TIME_NULL = -1;
     private static final long REMAINING_TIME = 2;
     private static final String ENHANCED_STRING_SUFFIX = "based on your usage";
     private static final long TEST_CHARGE_TIME_REMAINING = TimeUnit.MINUTES.toMicros(1);
     private static final String TEST_CHARGE_TIME_REMAINING_STRINGIFIED =
-            "1m left until fully charged";
+            "1 min left until fully charged";
     private static final String TEST_BATTERY_LEVEL_10 = "10%";
-    private static final String FIFTEEN_MIN_FORMATTED = "15m";
+    private static final String FIFTEEN_MIN_FORMATTED = "15 min";
     public static final Estimate DUMMY_ESTIMATE = new Estimate(
             1000, /* estimateMillis */
             false, /* isBasedOnUsage */
@@ -131,7 +131,7 @@
                 mBatteryStats, SystemClock.elapsedRealtime() * 1000, true /* shortString */);
 
         assertThat(info.discharging).isEqualTo(false);
-        assertThat(info.chargeLabel.toString()).isEqualTo("50% - 1m until fully charged");
+        assertThat(info.chargeLabel.toString()).isEqualTo("50% - 1 min until fully charged");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index d021c5d..5179ca6 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -208,7 +208,7 @@
         mFragment.updateLastFullChargePreference();
 
         assertThat(mLastFullChargePref.getTitle()).isEqualTo("Full charge lasts about");
-        assertThat(mLastFullChargePref.getSubtitle().toString()).isEqualTo("2h");
+        assertThat(mLastFullChargePref.getSubtitle().toString()).isEqualTo("2 hr");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
index d32e026..6d7e8e7 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
@@ -204,7 +204,7 @@
         ShadowAlertDialog shadowDialog = shadowOf(dialog);
 
         assertThat(shadowDialog.getMessage()).isEqualTo(
-                "Based on your usage, your battery usually lasts about 1h when fully charged"
+                "Based on your usage, your battery usually lasts about 1 hr when fully charged"
                         + ".\n\nIf you need to extend your battery life, turn on Battery Saver.");
     }
 
