Fix failed tests since presubmit is ignored in ag/15802168 am: 27efa546cf
am: a168e2e0fc
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15809054 Change-Id: I8396a058b78d2c37ebf223e26884860061a08b84
This commit is contained in:
@@ -113,7 +113,9 @@ public class BatteryDiffEntry {
|
||||
/** Gets the app icon {@link Drawable} for this entry. */
|
||||
public Drawable getAppIcon() {
|
||||
loadLabelAndIcon();
|
||||
return mAppIcon.getConstantState().newDrawable();
|
||||
return mAppIcon != null && mAppIcon.getConstantState() != null
|
||||
? mAppIcon.getConstantState().newDrawable()
|
||||
: null;
|
||||
}
|
||||
|
||||
/** Gets the app icon id for this entry. */
|
||||
|
@@ -105,6 +105,9 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
doReturn(new String[] {"com.android.googlequicksearchbox"})
|
||||
.when(mFeatureFactory.powerUsageFeatureProvider)
|
||||
.getHideApplicationSummary(mContext);
|
||||
doReturn(new String[] {"com.android.gms.persistent"})
|
||||
.when(mFeatureFactory.powerUsageFeatureProvider)
|
||||
.getHideApplicationEntries(mContext);
|
||||
mBatteryChartPreferenceController = createController();
|
||||
mBatteryChartPreferenceController.mPrefContext = mContext;
|
||||
mBatteryChartPreferenceController.mAppListPrefGroup = mAppListGroup;
|
||||
@@ -661,7 +664,7 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
|
||||
// Verifies the items which are defined in the array list.
|
||||
assertThat(mBatteryChartPreferenceController
|
||||
.isValidToShowEntry("com.google.android.gms.persistent"))
|
||||
.isValidToShowEntry("com.android.gms.persistent"))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
|
@@ -17,6 +17,7 @@ package com.android.settings.fuelgauge;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
@@ -28,6 +29,7 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.Drawable.ConstantState;
|
||||
import android.os.BatteryConsumer;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
@@ -41,6 +43,10 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.annotation.Implementation;
|
||||
import org.robolectric.annotation.Implements;
|
||||
import org.robolectric.annotation.Resetter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -48,6 +54,7 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {BatteryDiffEntryTest.ShadowUserHandle.class})
|
||||
public final class BatteryDiffEntryTest {
|
||||
|
||||
private Context mContext;
|
||||
@@ -60,10 +67,12 @@ public final class BatteryDiffEntryTest {
|
||||
@Mock private Drawable mockBadgedDrawable;
|
||||
@Mock private BatteryHistEntry mBatteryHistEntry;
|
||||
@Mock private PackageInfo mockPackageInfo;
|
||||
@Mock private ConstantState mockConstantState;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
ShadowUserHandle.reset();
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
doReturn(mContext).when(mContext).getApplicationContext();
|
||||
doReturn(mockUserManager).when(mContext).getSystemService(UserManager.class);
|
||||
@@ -229,6 +238,7 @@ public final class BatteryDiffEntryTest {
|
||||
final ContentValues values = getContentValuesWithType(
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
|
||||
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
|
||||
mockConstantState(mockDrawable);
|
||||
|
||||
final BatteryDiffEntry entry = createBatteryDiffEntry(10, batteryHistEntry);
|
||||
|
||||
@@ -239,20 +249,32 @@ public final class BatteryDiffEntryTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAppIcon_uidConsumerWithNullIcon_returnDefaultActivityIcon()
|
||||
public void testGetAppIcon_uidConsumerForNonOwner_returnDefaultActivityIconWithBadge()
|
||||
throws Exception {
|
||||
ShadowUserHandle.setUid(10);
|
||||
final BatteryDiffEntry entry = createBatteryDiffEntry(mockDrawable);
|
||||
final int userId = UserHandle.getUserId(1001);
|
||||
mockConstantState(mockDrawable);
|
||||
mockConstantState(mockBadgedDrawable);
|
||||
doReturn(mockBadgedDrawable).when(mockUserManager)
|
||||
.getBadgedIconForUser(mockDrawable, new UserHandle(userId));
|
||||
.getBadgedIconForUser(eq(mockDrawable), any());
|
||||
|
||||
entry.mAppIcon = null;
|
||||
assertThat(entry.getAppIcon()).isEqualTo(mockBadgedDrawable);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAppIcon_uidConsumerWithNullIcon_returnDefaultActivityIcon()
|
||||
throws Exception {
|
||||
final BatteryDiffEntry entry = createBatteryDiffEntry(mockDrawable);
|
||||
mockConstantState(mockDrawable);
|
||||
|
||||
entry.mAppIcon = null;
|
||||
assertThat(entry.getAppIcon()).isEqualTo(mockDrawable);
|
||||
assertThat(BatteryDiffEntry.sResourceCache).hasSize(1);
|
||||
// Verifies the app label in the cache.
|
||||
final BatteryEntry.NameAndIcon nameAndIcon =
|
||||
BatteryDiffEntry.sResourceCache.get(entry.getKey());
|
||||
assertThat(nameAndIcon.icon).isEqualTo(mockBadgedDrawable);
|
||||
assertThat(nameAndIcon.icon).isEqualTo(mockDrawable);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -272,19 +294,17 @@ public final class BatteryDiffEntryTest {
|
||||
@Test
|
||||
public void testClearCache_switchLocale_clearCacheIconAndLabel() throws Exception {
|
||||
final int userId = UserHandle.getUserId(1001);
|
||||
doReturn(mockBadgedDrawable).when(mockUserManager)
|
||||
.getBadgedIconForUser(mockDrawable, new UserHandle(userId));
|
||||
doReturn(mockDrawable2).when(mockUserManager)
|
||||
.getBadgedIconForUser(mockDrawable2, new UserHandle(userId));
|
||||
Locale.setDefault(new Locale("en_US"));
|
||||
final BatteryDiffEntry entry1 = createBatteryDiffEntry(mockDrawable);
|
||||
assertThat(entry1.getAppIcon()).isEqualTo(mockBadgedDrawable);
|
||||
mockConstantState(mockDrawable);
|
||||
assertThat(entry1.getAppIcon()).isEqualTo(mockDrawable);
|
||||
// Switch the locale into another one.
|
||||
Locale.setDefault(new Locale("zh_TW"));
|
||||
|
||||
final BatteryDiffEntry entry2 = createBatteryDiffEntry(mockDrawable2);
|
||||
|
||||
// We should get new drawable without caching.
|
||||
mockConstantState(mockDrawable2);
|
||||
assertThat(entry2.getAppIcon()).isEqualTo(mockDrawable2);
|
||||
// Verifies the cache is updated into the new drawable.
|
||||
final BatteryEntry.NameAndIcon nameAndIcon =
|
||||
@@ -440,4 +460,34 @@ public final class BatteryDiffEntryTest {
|
||||
.getPackagesForUid(1001);
|
||||
return createBatteryDiffEntry(10, batteryHistEntry);
|
||||
}
|
||||
|
||||
private void mockConstantState(Drawable drawable) {
|
||||
doReturn(mockConstantState).when(drawable).getConstantState();
|
||||
doReturn(drawable).when(mockConstantState).newDrawable();
|
||||
}
|
||||
|
||||
@Implements(UserHandle.class)
|
||||
public static class ShadowUserHandle {
|
||||
// Sets the default as thte OWNER role.
|
||||
private static int sUid = 0;
|
||||
|
||||
public static void setUid(int uid) {
|
||||
sUid = uid;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
public static int myUserId() {
|
||||
return sUid;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
public static int getUserId(int userId) {
|
||||
return sUid;
|
||||
}
|
||||
|
||||
@Resetter
|
||||
public static void reset() {
|
||||
sUid = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user