From 5da24591eab387a5b3e37675a975cb4e1afd545b Mon Sep 17 00:00:00 2001 From: Sunny Shao Date: Thu, 13 Jun 2019 17:06:31 +0800 Subject: [PATCH] Update testcases which failed due to the SupportLibrary changed Fragment.oncreate() causes an IllegalStateException. We use a ShadowFragment to stop the calling sequence. Fixes: 135086559 Test: robotest Change-Id: I601e0f2513f826b0b7749cb2c013b7e4c0a94a33 --- .../settings/SettingsPreferenceFragmentTest.java | 4 ++ .../AccessibilityDetailsSettingsFragmentTest.java | 5 +++ .../RemoveAccountPreferenceControllerTest.java | 7 +++- .../defaultapps/DefaultAutofillPickerTest.java | 5 +++ .../fingerprint/DeleteFingerprintDialogTest.java | 21 ++++++++++- .../settings/datausage/AppDataUsageTest.java | 44 ++++++++++++---------- .../datausage/BillingCycleSettingsTest.java | 3 ++ .../aboutphone/MyDeviceInfoFragmentTest.java | 2 + .../android/settings/network/ApnEditorTest.java | 3 ++ .../settings/testutils/shadow/ShadowFragment.java | 7 ++++ .../android/settings/wifi/WifiSettingsTest.java | 5 ++- .../calling/WifiCallingDisclaimerFragmentTest.java | 3 +- .../calling/WifiCallingSettingsForSubTest.java | 3 ++ .../wifi/tether/WifiTetherSettingsTest.java | 2 + 14 files changed, 87 insertions(+), 27 deletions(-) diff --git a/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java index cce01550a7..50e3980364 100644 --- a/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java @@ -37,6 +37,7 @@ import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.widget.WorkOnlyCategory; import org.junit.Before; @@ -46,6 +47,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; @RunWith(RobolectricTestRunner.class) @@ -147,6 +149,7 @@ public class SettingsPreferenceFragmentTest { } @Test + @Config(shadows = ShadowFragment.class) public void onCreate_hasExtraFragmentKey_shouldExpandPreferences() { doReturn(mContext.getTheme()).when(mActivity).getTheme(); doReturn(mContext.getResources()).when(mFragment).getResources(); @@ -161,6 +164,7 @@ public class SettingsPreferenceFragmentTest { } @Test + @Config(shadows = ShadowFragment.class) public void onCreate_noPreferenceScreen_shouldNotCrash() { doReturn(mContext.getTheme()).when(mActivity).getTheme(); doReturn(mContext.getResources()).when(mFragment).getResources(); diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java index 9d5a5b89a7..9ad00ebca3 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java @@ -32,6 +32,9 @@ import android.os.Bundle; import android.view.accessibility.AccessibilityManager; import androidx.fragment.app.FragmentActivity; + +import com.android.settings.testutils.shadow.ShadowFragment; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -39,6 +42,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowAccessibilityManager; import org.xmlpull.v1.XmlPullParserException; @@ -47,6 +51,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +@Config(shadows = ShadowFragment.class) @RunWith(RobolectricTestRunner.class) public class AccessibilityDetailsSettingsFragmentTest { private final static String PACKAGE_NAME = "com.foo.bar"; diff --git a/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java index d98d30aff6..86522ed2a9 100644 --- a/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java @@ -54,6 +54,7 @@ import com.android.settings.R; import com.android.settings.testutils.shadow.ShadowAccountManager; import com.android.settings.testutils.shadow.ShadowContentResolver; import com.android.settings.testutils.shadow.ShadowDevicePolicyManager; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.widget.LayoutPreference; @@ -169,7 +170,8 @@ public class RemoveAccountPreferenceControllerTest { } @Test - @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class}) + @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class, + ShadowFragment.class}) public void confirmRemove_shouldRemoveAccount() throws AuthenticatorException, OperationCanceledException, IOException { when(mFragment.isAdded()).thenReturn(true); @@ -201,7 +203,8 @@ public class RemoveAccountPreferenceControllerTest { } @Test - @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class}) + @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class, + ShadowFragment.class}) public void confirmRemove_activityGone_shouldSilentlyRemoveAccount() throws AuthenticatorException, OperationCanceledException, IOException { final Account account = new Account("Account11", "com.acct1"); diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java index 81a16d53a6..9ec7f0b550 100644 --- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java +++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java @@ -40,6 +40,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.preference.PreferenceScreen; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.testutils.shadow.ShadowSecureSettings; import com.android.settingslib.applications.DefaultAppInfo; @@ -133,6 +134,7 @@ public class DefaultAutofillPickerTest { } @Test + @Config(shadows = ShadowFragment.class) public void mUserId_shouldDeriveUidFromManagedCaller() { setupUserManager(); setupCaller(); @@ -145,6 +147,7 @@ public class DefaultAutofillPickerTest { } @Test + @Config(shadows = ShadowFragment.class) public void mUserId_shouldDeriveUidFromMainCaller() { setupUserManager(); setupCaller(); @@ -157,6 +160,7 @@ public class DefaultAutofillPickerTest { } @Test + @Config(shadows = ShadowFragment.class) public void mUserId_shouldDeriveUidFromManagedClick() { setupUserManager(); setupClick(/* forWork= */ true); @@ -169,6 +173,7 @@ public class DefaultAutofillPickerTest { } @Test + @Config(shadows = ShadowFragment.class) public void mUserId_shouldDeriveUidFromMainClick() { setupUserManager(); setupClick(/* forWork= */ false); diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/DeleteFingerprintDialogTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/DeleteFingerprintDialogTest.java index 0681e1c9aa..e825c01346 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/DeleteFingerprintDialogTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/DeleteFingerprintDialogTest.java @@ -23,12 +23,12 @@ import static org.mockito.Mockito.verify; import android.app.Dialog; import android.hardware.fingerprint.Fingerprint; +import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment; import com.android.settings.biometrics.fingerprint.FingerprintSettings .FingerprintSettingsFragment.DeleteFingerprintDialog; -import com.android.settings.testutils.shadow.ShadowFragment; import org.junit.Before; import org.junit.Test; @@ -37,10 +37,12 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; +import org.robolectric.annotation.Implementation; +import org.robolectric.annotation.Implements; import org.robolectric.shadows.androidx.fragment.FragmentController; @RunWith(RobolectricTestRunner.class) -@Config(shadows = ShadowFragment.class) +@Config(shadows = DeleteFingerprintDialogTest.ShadowFragment.class) public class DeleteFingerprintDialogTest { @Mock @@ -75,4 +77,19 @@ public class DeleteFingerprintDialogTest { verify(mTarget, never()).deleteFingerPrint(mFingerprint); } + + @Implements(Fragment.class) + public static class ShadowFragment { + private Fragment mTargetFragment; + + @Implementation + protected void setTargetFragment(Fragment fragment, int requestCode) { + mTargetFragment = fragment; + } + + @Implementation + protected Fragment getTargetFragment() { + return mTargetFragment; + } + } } diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java index 6cecd98a2a..ded7d106ec 100644 --- a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java +++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java @@ -53,6 +53,7 @@ import com.android.settings.applications.AppInfoBase; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.shadow.ShadowDataUsageUtils; import com.android.settings.testutils.shadow.ShadowEntityHeaderController; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.AppItem; @@ -102,6 +103,7 @@ public class AppDataUsageTest { } @Test + @Config(shadows = ShadowFragment.class) public void onCreate_appUid_shouldGetAppLabelFromAppInfo() throws NameNotFoundException { mFragment = spy(new AppDataUsage()); final FragmentActivity activity = spy(Robolectric.setupActivity(FragmentActivity.class)); @@ -109,17 +111,17 @@ public class AppDataUsageTest { doReturn(activity).when(mFragment).getActivity(); doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider", - FakeFeatureFactory.setupForTest().dashboardFeatureProvider); + FakeFeatureFactory.setupForTest().dashboardFeatureProvider); final String packageName = "testPackage"; final int uid = (Process.FIRST_APPLICATION_UID + Process.LAST_APPLICATION_UID) / 2; - doReturn(new String[] {packageName}).when(mPackageManager).getPackagesForUid(uid); + doReturn(new String[]{packageName}).when(mPackageManager).getPackagesForUid(uid); final String label = "testLabel"; final AppItem appItem = new AppItem(uid); appItem.uids.put(uid, true); final ApplicationInfo info = spy(new ApplicationInfo()); doReturn(label).when(info).loadLabel(mPackageManager); when(mPackageManager.getApplicationInfoAsUser( - eq(packageName), anyInt() /* flags */, anyInt() /* userId */)).thenReturn(info); + eq(packageName), anyInt() /* flags */, anyInt() /* userId */)).thenReturn(info); final Bundle args = new Bundle(); args.putParcelable(AppDataUsage.ARG_APP_ITEM, appItem); args.putInt(AppInfoBase.ARG_PACKAGE_UID, uid); @@ -131,10 +133,11 @@ public class AppDataUsageTest { } @Test + @Config(shadows = ShadowFragment.class) public void onCreate_notAppUid_shouldGetAppLabelFromUidDetailProvider() { mFragment = spy(new AppDataUsage()); ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider", - FakeFeatureFactory.setupForTest().dashboardFeatureProvider); + FakeFeatureFactory.setupForTest().dashboardFeatureProvider); doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity(); doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); final UidDetailProvider uidDetailProvider = mock(UidDetailProvider.class); @@ -144,7 +147,7 @@ public class AppDataUsageTest { final UidDetail uidDetail = new UidDetail(); uidDetail.label = label; when(uidDetailProvider.getUidDetail(eq(uid), anyBoolean() /* blocking */)). - thenReturn(uidDetail); + thenReturn(uidDetail); final AppItem appItem = new AppItem(uid); appItem.uids.put(uid, true); final Bundle args = new Bundle(); @@ -166,7 +169,7 @@ public class AppDataUsageTest { mFragment = spy(new AppDataUsage()); when(mFragment.getPreferenceManager()) - .thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS)); + .thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS)); doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen(); ReflectionHelpers.setField(mFragment, "mAppItem", mock(AppItem.class)); @@ -177,7 +180,7 @@ public class AppDataUsageTest { @Test public void bindAppHeader_workApp_shouldSetWorkAppUid() - throws PackageManager.NameNotFoundException { + throws PackageManager.NameNotFoundException { final int fakeUserId = 100; mFragment = spy(new AppDataUsage()); @@ -198,7 +201,7 @@ public class AppDataUsageTest { when(mHeaderController.setHasAppInfoLink(anyBoolean())).thenReturn(mHeaderController); when(mFragment.getPreferenceManager()) - .thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS)); + .thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS)); doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen(); mFragment.onViewCreated(new View(RuntimeEnvironment.application), new Bundle()); @@ -276,7 +279,7 @@ public class AppDataUsageTest { final long foregroundBytes = 5678L; final List appUsage = new ArrayList<>(); appUsage.add(new NetworkCycleDataForUid.Builder() - .setBackgroundUsage(backgroundBytes).setForegroundUsage(foregroundBytes).build()); + .setBackgroundUsage(backgroundBytes).setForegroundUsage(foregroundBytes).build()); ReflectionHelpers.setField(mFragment, "mUsageData", appUsage); final Preference backgroundPref = mock(Preference.class); ReflectionHelpers.setField(mFragment, "mBackgroundUsage", backgroundPref); @@ -291,7 +294,7 @@ public class AppDataUsageTest { verify(cycle).setVisible(true); verify(totalPref).setSummary( - DataUsageUtils.formatDataUsage(context, backgroundBytes + foregroundBytes)); + DataUsageUtils.formatDataUsage(context, backgroundBytes + foregroundBytes)); verify(backgroundPref).setSummary(DataUsageUtils.formatDataUsage(context, backgroundBytes)); verify(foregroundPref).setSummary(DataUsageUtils.formatDataUsage(context, foregroundBytes)); } @@ -306,12 +309,12 @@ public class AppDataUsageTest { ReflectionHelpers.setField(mFragment, "mContext", context); ReflectionHelpers.setField(mFragment, "mAppItem", appItem); ReflectionHelpers.setField(mFragment, "mTemplate", - NetworkTemplate.buildTemplateWifiWildcard()); + NetworkTemplate.buildTemplateWifiWildcard()); final long end = System.currentTimeMillis(); final long start = end - (DateUtils.WEEK_IN_MILLIS * 4); final NetworkCycleDataForUidLoader loader = (NetworkCycleDataForUidLoader) - mFragment.mUidDataCallbacks.onCreateLoader(0, Bundle.EMPTY); + mFragment.mUidDataCallbacks.onCreateLoader(0, Bundle.EMPTY); final List uids = loader.getUids(); assertThat(uids).hasSize(1); @@ -331,12 +334,12 @@ public class AppDataUsageTest { ReflectionHelpers.setField(mFragment, "mContext", context); ReflectionHelpers.setField(mFragment, "mAppItem", appItem); ReflectionHelpers.setField(mFragment, "mTemplate", - NetworkTemplate.buildTemplateWifiWildcard()); + NetworkTemplate.buildTemplateWifiWildcard()); final long end = System.currentTimeMillis(); final long start = end - (DateUtils.WEEK_IN_MILLIS * 4); final NetworkCycleDataForUidLoader loader = (NetworkCycleDataForUidLoader) - mFragment.mUidDataCallbacks.onCreateLoader(0, Bundle.EMPTY); + mFragment.mUidDataCallbacks.onCreateLoader(0, Bundle.EMPTY); final List uids = loader.getUids(); assertThat(uids).hasSize(3); @@ -362,10 +365,10 @@ public class AppDataUsageTest { ReflectionHelpers.setField(mFragment, "mCycles", testCycles); ReflectionHelpers.setField(mFragment, "mAppItem", appItem); ReflectionHelpers.setField(mFragment, "mTemplate", - NetworkTemplate.buildTemplateWifiWildcard()); + NetworkTemplate.buildTemplateWifiWildcard()); final NetworkCycleDataForUidLoader loader = (NetworkCycleDataForUidLoader) - mFragment.mUidDataCallbacks.onCreateLoader(0 /* id */, Bundle.EMPTY /* args */); + mFragment.mUidDataCallbacks.onCreateLoader(0 /* id */, Bundle.EMPTY /* args */); final ArrayList cycles = loader.getCycles(); assertThat(cycles).hasSize(2); @@ -409,13 +412,14 @@ public class AppDataUsageTest { } @Test - @Config(shadows = {ShadowDataUsageUtils.class, ShadowSubscriptionManager.class}) + @Config(shadows = {ShadowDataUsageUtils.class, ShadowSubscriptionManager.class, + ShadowFragment.class}) public void onCreate_noNetworkTemplateAndInvalidDataSubscription_shouldUseWifiTemplate() { ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true; ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true; ShadowDataUsageUtils.HAS_SIM = false; ShadowSubscriptionManager.setDefaultDataSubscriptionId( - SubscriptionManager.INVALID_SUBSCRIPTION_ID); + SubscriptionManager.INVALID_SUBSCRIPTION_ID); mFragment = spy(new AppDataUsage()); doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity(); doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); @@ -424,7 +428,7 @@ public class AppDataUsageTest { doReturn(new UidDetail()).when(uidDetailProvider).getUidDetail(anyInt(), anyBoolean()); ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider", - FakeFeatureFactory.setupForTest().dashboardFeatureProvider); + FakeFeatureFactory.setupForTest().dashboardFeatureProvider); final Bundle args = new Bundle(); args.putInt(AppInfoBase.ARG_PACKAGE_UID, 123123); mFragment.setArguments(args); @@ -432,6 +436,6 @@ public class AppDataUsageTest { mFragment.onCreate(Bundle.EMPTY); assertThat(mFragment.mTemplate.getMatchRule()) - .isEqualTo(NetworkTemplate.MATCH_WIFI_WILDCARD); + .isEqualTo(NetworkTemplate.MATCH_WIFI_WILDCARD); } } diff --git a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java index 33ae0645d4..2c0155f4a3 100644 --- a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java +++ b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java @@ -45,6 +45,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceManager; import androidx.preference.SwitchPreference; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreferenceMixinCompat; @@ -56,6 +57,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; @RunWith(RobolectricTestRunner.class) @@ -142,6 +144,7 @@ public class BillingCycleSettingsTest { } @Test + @Config(shadows = ShadowFragment.class) public void onCreate_emptyArguments_shouldSetDefaultNetworkTemplate() { final BillingCycleSettings billingCycleSettings = spy(new BillingCycleSettings()); when(billingCycleSettings.getContext()).thenReturn(mContext); diff --git a/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragmentTest.java b/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragmentTest.java index 90dcf71826..de11aa9402 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragmentTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragmentTest.java @@ -38,6 +38,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.deviceinfo.BuildNumberPreferenceController; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.shadow.ShadowConnectivityManager; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.core.AbstractPreferenceController; @@ -90,6 +91,7 @@ public class MyDeviceInfoFragmentTest { } @Test + @Config(shadows = ShadowFragment.class) public void onCreate_fromSearch_shouldNotOverrideInitialExpandedCount() { final Bundle args = new Bundle(); args.putString(EXTRA_FRAGMENT_ARG_KEY, "search_key"); diff --git a/tests/robotests/src/com/android/settings/network/ApnEditorTest.java b/tests/robotests/src/com/android/settings/network/ApnEditorTest.java index 8624eb91ad..2253165d9a 100644 --- a/tests/robotests/src/com/android/settings/network/ApnEditorTest.java +++ b/tests/robotests/src/com/android/settings/network/ApnEditorTest.java @@ -46,6 +46,7 @@ import androidx.preference.SwitchPreference; import com.android.settings.R; import com.android.settings.network.ApnEditor.ApnData; +import com.android.settings.testutils.shadow.ShadowFragment; import org.junit.Before; import org.junit.Test; @@ -58,6 +59,7 @@ import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) public class ApnEditorTest { @@ -455,6 +457,7 @@ public class ApnEditorTest { } @Test + @Config(shadows = ShadowFragment.class) public void onCreate_noAction_shouldFinishAndNoCrash() { doNothing().when(mApnEditorUT).addPreferencesFromResource(anyInt()); diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFragment.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFragment.java index a70d4d6baf..4c50e1a496 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFragment.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFragment.java @@ -16,6 +16,8 @@ package com.android.settings.testutils.shadow; +import android.os.Bundle; + import androidx.fragment.app.Fragment; import org.robolectric.annotation.Implementation; @@ -27,6 +29,11 @@ public class ShadowFragment { private Fragment mTargetFragment; @Implementation + public void onCreate(Bundle icicle) { + // do nothing + } + + @Implementation protected void setTargetFragment(Fragment fragment, int requestCode) { mTargetFragment = fragment; } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java index d2e3566487..a16a576c55 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java @@ -50,6 +50,7 @@ import com.android.settings.R; import com.android.settings.datausage.DataUsagePreference; import com.android.settings.search.SearchIndexableRaw; import com.android.settings.testutils.shadow.ShadowDataUsageUtils; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.WifiTracker; @@ -247,7 +248,7 @@ public class WifiSettingsTest { } @Test - @Config(shadows = {ShadowDataUsageUtils.class}) + @Config(shadows = {ShadowDataUsageUtils.class, ShadowFragment.class}) public void checkDataUsagePreference_perferenceInvisibleIfWifiNotSupported() { setUpForOnCreate(); ShadowDataUsageUtils.IS_WIFI_SUPPORTED = false; @@ -258,7 +259,7 @@ public class WifiSettingsTest { } @Test - @Config(shadows = {ShadowDataUsageUtils.class}) + @Config(shadows = {ShadowDataUsageUtils.class, ShadowFragment.class}) public void checkDataUsagePreference_perferenceVisibleIfWifiSupported() { setUpForOnCreate(); ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true; diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java index 25fa737b59..d7b79b1e5a 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java @@ -41,6 +41,7 @@ import androidx.recyclerview.widget.RecyclerView.OnScrollListener; import com.android.settings.R; import com.android.settings.testutils.shadow.ShadowDisclaimerItemFactory; +import com.android.settings.testutils.shadow.ShadowFragment; import java.util.ArrayList; import java.util.List; @@ -57,7 +58,7 @@ import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) -@Config(shadows = ShadowDisclaimerItemFactory.class) +@Config(shadows = {ShadowDisclaimerItemFactory.class, ShadowFragment.class}) public class WifiCallingDisclaimerFragmentTest { @Mock diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java index ae88231c74..6fc2551d20 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java @@ -55,6 +55,7 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.shadow.SettingsShadowResources; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.widget.SwitchBar; import com.android.settings.widget.ToggleSwitch; @@ -67,7 +68,9 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.util.ReflectionHelpers; +import org.robolectric.annotation.Config; +@Config(shadows = ShadowFragment.class) @RunWith(RobolectricTestRunner.class) public class WifiCallingSettingsForSubTest { private static final String BUTTON_WFC_MODE = "wifi_calling_mode"; diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java index cdc74b30b7..e501689d8b 100644 --- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java @@ -39,6 +39,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.preference.PreferenceScreen; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.testutils.shadow.ShadowWifiManager; import org.junit.Before; @@ -115,6 +116,7 @@ public class WifiTetherSettingsTest { } @Test + @Config(shadows = ShadowFragment.class) public void startFragment_notAdminUser_shouldRemoveAllPreferences() { final WifiTetherSettings settings = spy(new WifiTetherSettings()); final FragmentActivity activity = mock(FragmentActivity.class); -- 2.11.0