From 1392e6c9791161dcdef666ec624becf40f6f050f Mon Sep 17 00:00:00 2001 From: tmfang Date: Wed, 5 Jun 2019 17:24:16 +0800 Subject: [PATCH] Fix BatteryTipDialogFragmentTest Test case can't get application info. We add test app information in packagemanager in setup(). Test: atest BatteryTipDialogFragmentTest Fixes: 134451831 Change-Id: I687f5f3a52ba8af346dbd0d798e4eee34a583870 --- .../BatteryTipDialogFragmentTest.java | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) 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 851ce787adb..331fb343d43 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java @@ -22,6 +22,9 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.graphics.drawable.ColorDrawable; import android.text.format.DateUtils; import androidx.appcompat.app.AlertDialog; @@ -38,15 +41,17 @@ import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowUtils; import com.android.settingslib.fuelgauge.EstimateKt; +import org.junit.After; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.Shadows; import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowPackageManager; import org.robolectric.shadows.androidx.fragment.FragmentController; import java.util.ArrayList; @@ -70,6 +75,7 @@ public class BatteryTipDialogFragmentTest { private UnrestrictAppTip mUnrestrictAppTip; private SummaryTip mSummaryTip; private AppInfo mAppInfo; + private ShadowPackageManager mPackageManager; @Before public void setUp() { @@ -79,6 +85,18 @@ public class BatteryTipDialogFragmentTest { FakeFeatureFactory.setupForTest(); ShadowUtils.setApplicationLabel(PACKAGE_NAME, DISPLAY_NAME); + mPackageManager = Shadows.shadowOf(mContext.getPackageManager()); + + final ApplicationInfo applicationInfo = new ApplicationInfo(); + applicationInfo.name = DISPLAY_NAME; + applicationInfo.packageName = PACKAGE_NAME; + + final PackageInfo packageInfo = new PackageInfo(); + packageInfo.packageName = PACKAGE_NAME; + packageInfo.applicationInfo = applicationInfo; + mPackageManager.addPackage(packageInfo); + mPackageManager.setApplicationIcon(PACKAGE_NAME, new ColorDrawable()); + List highUsageTips = new ArrayList<>(); mAppInfo = new AppInfo.Builder() .setScreenOnTimeMs(SCREEN_TIME_MS) @@ -100,8 +118,12 @@ public class BatteryTipDialogFragmentTest { EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN)); } + @After + public void tearDown() { + mPackageManager.removePackage(PACKAGE_NAME); + } + @Test - @Ignore public void testOnCreateDialog_highUsageTip_fireHighUsageDialog() { Robolectric.getForegroundThreadScheduler().pause(); @@ -137,7 +159,6 @@ public class BatteryTipDialogFragmentTest { } @Test - @Ignore public void testOnCreateDialog_restrictTwoAppsTip_fireRestrictTwoAppsDialog() { Robolectric.getForegroundThreadScheduler().pause();