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. */
|
/** Gets the app icon {@link Drawable} for this entry. */
|
||||||
public Drawable getAppIcon() {
|
public Drawable getAppIcon() {
|
||||||
loadLabelAndIcon();
|
loadLabelAndIcon();
|
||||||
return mAppIcon.getConstantState().newDrawable();
|
return mAppIcon != null && mAppIcon.getConstantState() != null
|
||||||
|
? mAppIcon.getConstantState().newDrawable()
|
||||||
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets the app icon id for this entry. */
|
/** Gets the app icon id for this entry. */
|
||||||
|
@@ -105,6 +105,9 @@ public final class BatteryChartPreferenceControllerTest {
|
|||||||
doReturn(new String[] {"com.android.googlequicksearchbox"})
|
doReturn(new String[] {"com.android.googlequicksearchbox"})
|
||||||
.when(mFeatureFactory.powerUsageFeatureProvider)
|
.when(mFeatureFactory.powerUsageFeatureProvider)
|
||||||
.getHideApplicationSummary(mContext);
|
.getHideApplicationSummary(mContext);
|
||||||
|
doReturn(new String[] {"com.android.gms.persistent"})
|
||||||
|
.when(mFeatureFactory.powerUsageFeatureProvider)
|
||||||
|
.getHideApplicationEntries(mContext);
|
||||||
mBatteryChartPreferenceController = createController();
|
mBatteryChartPreferenceController = createController();
|
||||||
mBatteryChartPreferenceController.mPrefContext = mContext;
|
mBatteryChartPreferenceController.mPrefContext = mContext;
|
||||||
mBatteryChartPreferenceController.mAppListPrefGroup = mAppListGroup;
|
mBatteryChartPreferenceController.mAppListPrefGroup = mAppListGroup;
|
||||||
@@ -661,7 +664,7 @@ public final class BatteryChartPreferenceControllerTest {
|
|||||||
|
|
||||||
// Verifies the items which are defined in the array list.
|
// Verifies the items which are defined in the array list.
|
||||||
assertThat(mBatteryChartPreferenceController
|
assertThat(mBatteryChartPreferenceController
|
||||||
.isValidToShowEntry("com.google.android.gms.persistent"))
|
.isValidToShowEntry("com.android.gms.persistent"))
|
||||||
.isFalse();
|
.isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -17,6 +17,7 @@ package com.android.settings.fuelgauge;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Matchers.anyInt;
|
import static org.mockito.Matchers.anyInt;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
@@ -28,6 +29,7 @@ import android.content.pm.ApplicationInfo;
|
|||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.graphics.drawable.Drawable.ConstantState;
|
||||||
import android.os.BatteryConsumer;
|
import android.os.BatteryConsumer;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
@@ -41,6 +43,10 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
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.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -48,6 +54,7 @@ import java.util.List;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
|
@Config(shadows = {BatteryDiffEntryTest.ShadowUserHandle.class})
|
||||||
public final class BatteryDiffEntryTest {
|
public final class BatteryDiffEntryTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -60,10 +67,12 @@ public final class BatteryDiffEntryTest {
|
|||||||
@Mock private Drawable mockBadgedDrawable;
|
@Mock private Drawable mockBadgedDrawable;
|
||||||
@Mock private BatteryHistEntry mBatteryHistEntry;
|
@Mock private BatteryHistEntry mBatteryHistEntry;
|
||||||
@Mock private PackageInfo mockPackageInfo;
|
@Mock private PackageInfo mockPackageInfo;
|
||||||
|
@Mock private ConstantState mockConstantState;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
ShadowUserHandle.reset();
|
||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
doReturn(mContext).when(mContext).getApplicationContext();
|
doReturn(mContext).when(mContext).getApplicationContext();
|
||||||
doReturn(mockUserManager).when(mContext).getSystemService(UserManager.class);
|
doReturn(mockUserManager).when(mContext).getSystemService(UserManager.class);
|
||||||
@@ -229,6 +238,7 @@ public final class BatteryDiffEntryTest {
|
|||||||
final ContentValues values = getContentValuesWithType(
|
final ContentValues values = getContentValuesWithType(
|
||||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
|
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
|
||||||
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
|
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
|
||||||
|
mockConstantState(mockDrawable);
|
||||||
|
|
||||||
final BatteryDiffEntry entry = createBatteryDiffEntry(10, batteryHistEntry);
|
final BatteryDiffEntry entry = createBatteryDiffEntry(10, batteryHistEntry);
|
||||||
|
|
||||||
@@ -239,20 +249,32 @@ public final class BatteryDiffEntryTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetAppIcon_uidConsumerWithNullIcon_returnDefaultActivityIcon()
|
public void testGetAppIcon_uidConsumerForNonOwner_returnDefaultActivityIconWithBadge()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
ShadowUserHandle.setUid(10);
|
||||||
final BatteryDiffEntry entry = createBatteryDiffEntry(mockDrawable);
|
final BatteryDiffEntry entry = createBatteryDiffEntry(mockDrawable);
|
||||||
final int userId = UserHandle.getUserId(1001);
|
mockConstantState(mockDrawable);
|
||||||
|
mockConstantState(mockBadgedDrawable);
|
||||||
doReturn(mockBadgedDrawable).when(mockUserManager)
|
doReturn(mockBadgedDrawable).when(mockUserManager)
|
||||||
.getBadgedIconForUser(mockDrawable, new UserHandle(userId));
|
.getBadgedIconForUser(eq(mockDrawable), any());
|
||||||
|
|
||||||
entry.mAppIcon = null;
|
entry.mAppIcon = null;
|
||||||
assertThat(entry.getAppIcon()).isEqualTo(mockBadgedDrawable);
|
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);
|
assertThat(BatteryDiffEntry.sResourceCache).hasSize(1);
|
||||||
// Verifies the app label in the cache.
|
// Verifies the app label in the cache.
|
||||||
final BatteryEntry.NameAndIcon nameAndIcon =
|
final BatteryEntry.NameAndIcon nameAndIcon =
|
||||||
BatteryDiffEntry.sResourceCache.get(entry.getKey());
|
BatteryDiffEntry.sResourceCache.get(entry.getKey());
|
||||||
assertThat(nameAndIcon.icon).isEqualTo(mockBadgedDrawable);
|
assertThat(nameAndIcon.icon).isEqualTo(mockDrawable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -272,19 +294,17 @@ public final class BatteryDiffEntryTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testClearCache_switchLocale_clearCacheIconAndLabel() throws Exception {
|
public void testClearCache_switchLocale_clearCacheIconAndLabel() throws Exception {
|
||||||
final int userId = UserHandle.getUserId(1001);
|
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"));
|
Locale.setDefault(new Locale("en_US"));
|
||||||
final BatteryDiffEntry entry1 = createBatteryDiffEntry(mockDrawable);
|
final BatteryDiffEntry entry1 = createBatteryDiffEntry(mockDrawable);
|
||||||
assertThat(entry1.getAppIcon()).isEqualTo(mockBadgedDrawable);
|
mockConstantState(mockDrawable);
|
||||||
|
assertThat(entry1.getAppIcon()).isEqualTo(mockDrawable);
|
||||||
// Switch the locale into another one.
|
// Switch the locale into another one.
|
||||||
Locale.setDefault(new Locale("zh_TW"));
|
Locale.setDefault(new Locale("zh_TW"));
|
||||||
|
|
||||||
final BatteryDiffEntry entry2 = createBatteryDiffEntry(mockDrawable2);
|
final BatteryDiffEntry entry2 = createBatteryDiffEntry(mockDrawable2);
|
||||||
|
|
||||||
// We should get new drawable without caching.
|
// We should get new drawable without caching.
|
||||||
|
mockConstantState(mockDrawable2);
|
||||||
assertThat(entry2.getAppIcon()).isEqualTo(mockDrawable2);
|
assertThat(entry2.getAppIcon()).isEqualTo(mockDrawable2);
|
||||||
// Verifies the cache is updated into the new drawable.
|
// Verifies the cache is updated into the new drawable.
|
||||||
final BatteryEntry.NameAndIcon nameAndIcon =
|
final BatteryEntry.NameAndIcon nameAndIcon =
|
||||||
@@ -440,4 +460,34 @@ public final class BatteryDiffEntryTest {
|
|||||||
.getPackagesForUid(1001);
|
.getPackagesForUid(1001);
|
||||||
return createBatteryDiffEntry(10, batteryHistEntry);
|
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