OSDN Git Service

Make Settings robotest work with tot Robolectric
authorFan Zhang <zhfan@google.com>
Thu, 11 Oct 2018 22:37:36 +0000 (15:37 -0700)
committerFan Zhang <zhfan@google.com>
Thu, 1 Nov 2018 00:59:17 +0000 (17:59 -0700)
Bug: 116278591
Test: make -j RunSettingsRoboTests
Change-Id: I32cb2fcf6094675f79d2fc24702ef6298a9691e4

140 files changed:
src/com/android/settings/location/AppLocationPermissionPreferenceController.java
src/com/android/settings/network/telephony/CarrierPreferenceController.java
src/com/android/settings/network/telephony/MobileDataPreferenceController.java
src/com/android/settings/network/telephony/MobileNetworkUtils.java
src/com/android/settings/network/telephony/RoamingPreferenceController.java
src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java
src/com/android/settings/notification/NotificationPreferenceController.java
src/com/android/settings/slices/SliceDataConverter.java
src/com/android/settings/slices/SlicesIndexer.java
src/com/android/settings/wifi/WifiWakeupPreferenceController.java
tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java
tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java
tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java
tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java
tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java
tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java
tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java
tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java
tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java
tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java
tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java
tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java
tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java
tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java
tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java
tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java
tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java
tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
tests/robotests/src/com/android/settings/testutils/ResIdSubject.java [deleted file]
tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java
tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java [deleted file]
tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java [deleted file]
tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java
tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java
tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java
tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java

index fabe295..f920fdc 100644 (file)
@@ -23,7 +23,6 @@ public class AppLocationPermissionPreferenceController extends
     @Override
     public boolean isAvailable() {
         return Settings.Global.getInt(mContext.getContentResolver(),
-                android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1)
-                == 1;
+                Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1) == 1;
     }
 }
index 406ef7b..8210c4b 100644 (file)
@@ -37,6 +37,7 @@ public class CarrierPreferenceController extends BasePreferenceController {
 
     public CarrierPreferenceController(Context context, String key) {
         super(context, key);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         mCarrierConfigManager = new CarrierConfigManager(context);
         mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     }
index 065f182..b1124f8 100644 (file)
@@ -59,6 +59,7 @@ public class MobileDataPreferenceController extends TogglePreferenceController
 
     public MobileDataPreferenceController(Context context, String key) {
         super(context, key);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
         mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
         mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
index f397382..e85c917 100644 (file)
@@ -82,7 +82,7 @@ public class MobileNetworkUtils {
      * Returns true if Wifi calling is enabled for at least one phone.
      */
     public static boolean isWifiCallingEnabled(Context context) {
-        int phoneCount = TelephonyManager.from(context).getPhoneCount();
+        int phoneCount = context.getSystemService(TelephonyManager.class).getPhoneCount();
         for (int i = 0; i < phoneCount; i++) {
             if (isWifiCallingEnabled(context, i)) {
                 return true;
@@ -218,7 +218,7 @@ public class MobileNetworkUtils {
      */
     public static void setMobileDataEnabled(Context context, int subId, boolean enabled,
             boolean disableOtherSubscriptions) {
-        final TelephonyManager telephonyManager = TelephonyManager.from(context)
+        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         final SubscriptionManager subscriptionManager = context.getSystemService(
                 SubscriptionManager.class);
@@ -230,7 +230,7 @@ public class MobileNetworkUtils {
             if (subInfoList != null) {
                 for (SubscriptionInfo subInfo : subInfoList) {
                     if (subInfo.getSubscriptionId() != subId) {
-                        TelephonyManager.from(context).createForSubscriptionId(
+                        context.getSystemService(TelephonyManager.class).createForSubscriptionId(
                                 subInfo.getSubscriptionId()).setDataEnabled(false);
                     }
                 }
@@ -245,7 +245,7 @@ public class MobileNetworkUtils {
         if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             return false;
         }
-        final TelephonyManager telephonyManager = TelephonyManager.from(context)
+        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         final PersistableBundle carrierConfig = context.getSystemService(
                 CarrierConfigManager.class).getConfigForSubId(subId);
@@ -307,7 +307,7 @@ public class MobileNetworkUtils {
     }
 
     private static boolean isGsmBasicOptions(Context context, int subId) {
-        final TelephonyManager telephonyManager = TelephonyManager.from(context)
+        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         final PersistableBundle carrierConfig = context.getSystemService(
                 CarrierConfigManager.class).getConfigForSubId(subId);
@@ -329,7 +329,7 @@ public class MobileNetworkUtils {
      * settings
      */
     public static boolean isWorldMode(Context context, int subId) {
-        final TelephonyManager telephonyManager = TelephonyManager.from(context)
+        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         boolean worldModeOn = false;
         final String configString = context.getString(R.string.config_world_mode);
@@ -392,7 +392,7 @@ public class MobileNetworkUtils {
             Context con = context.createPackageContext("com.android.systemui", 0);
             int id = con.getResources().getIdentifier("config_show4GForLTE",
                     "bool", "com.android.systemui");
-             return con.getResources().getBoolean(id);
+            return con.getResources().getBoolean(id);
         } catch (PackageManager.NameNotFoundException e) {
             Log.e(TAG, "NameNotFoundException for show4GFotLTE");
             return false;
@@ -404,7 +404,7 @@ public class MobileNetworkUtils {
      */
     public static boolean isTdscdmaSupported(Context context, int subId) {
         return isTdscdmaSupported(context,
-                TelephonyManager.from(context).createForSubscriptionId(subId));
+                context.getSystemService(TelephonyManager.class).createForSubscriptionId(subId));
     }
 
     //TODO(b/117651939): move it to telephony
index b2eba08..688268c 100644 (file)
@@ -59,6 +59,7 @@ public class RoamingPreferenceController extends TogglePreferenceController impl
 
     public RoamingPreferenceController(Context context, String key) {
         super(context, key);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
         mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
         mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
index 6258f9d..a5498bc 100644 (file)
@@ -22,6 +22,7 @@ import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
 import android.provider.Settings;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
 import androidx.preference.Preference;
@@ -48,6 +49,7 @@ public abstract class CdmaBasePreferenceController extends BasePreferenceControl
 
     public CdmaBasePreferenceController(Context context, String key) {
         super(context, key);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
     }
 
index c3552cc..22f07be 100644 (file)
@@ -28,7 +28,6 @@ import android.os.UserManager;
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
 
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -83,24 +82,6 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc
         return true;
     }
 
-    // finds the preference recursively and removes it from its parent
-    private void findAndRemovePreference(PreferenceGroup prefGroup, String key) {
-        final int preferenceCount = prefGroup.getPreferenceCount();
-        for (int i = preferenceCount - 1; i >= 0; i--) {
-            final Preference preference = prefGroup.getPreference(i);
-            final String curKey = preference.getKey();
-
-            if (curKey != null && curKey.equals(key)) {
-                mPreference = preference;
-                prefGroup.removePreference(preference);
-            }
-
-            if (preference instanceof PreferenceGroup) {
-                findAndRemovePreference((PreferenceGroup) preference, key);
-            }
-        }
-    }
-
     protected void onResume(NotificationBackend.AppRow appRow,
             @Nullable NotificationChannel channel, @Nullable NotificationChannelGroup group,
             RestrictedLockUtils.EnforcedAdmin admin) {
index 29e3d6b..3d9cf45 100644 (file)
@@ -226,7 +226,7 @@ class SliceDataConverter {
                         SliceBuilderUtils.getPreferenceController(mContext, xmlSlice);
 
                 // Only add pre-approved Slices available on the device.
-                if (controller.isAvailable() && controller.isSliceable()) {
+                if (controller.isSliceable() && controller.isAvailable()) {
                     xmlSliceData.add(xmlSlice);
                 }
             }
index 0ccd223..0c39429 100644 (file)
@@ -66,12 +66,11 @@ class SlicesIndexer implements Runnable {
             return;
         }
 
-        SQLiteDatabase database = mHelper.getWritableDatabase();
+        final SQLiteDatabase database = mHelper.getWritableDatabase();
 
+        long startTime = System.currentTimeMillis();
+        database.beginTransaction();
         try {
-            long startTime = System.currentTimeMillis();
-            database.beginTransaction();
-
             mHelper.reconstruct(mHelper.getWritableDatabase());
             List<SliceData> indexData = getSliceData();
             insertSliceData(database, indexData);
@@ -85,6 +84,7 @@ class SlicesIndexer implements Runnable {
         } finally {
             database.endTransaction();
         }
+        database.close();
     }
 
     @VisibleForTesting
index bf9d167..435f8f1 100644 (file)
@@ -68,7 +68,7 @@ public class WifiWakeupPreferenceController extends AbstractPreferenceController
 
     @Override
     public boolean isAvailable() {
-      return true;
+        return true;
     }
 
     @Override
@@ -108,8 +108,8 @@ public class WifiWakeupPreferenceController extends AbstractPreferenceController
         final SwitchPreference enableWifiWakeup = (SwitchPreference) preference;
 
         enableWifiWakeup.setChecked(getWifiWakeupEnabled()
-                        && getWifiScanningEnabled()
-                        && mLocationManager.isLocationEnabled());
+                && getWifiScanningEnabled()
+                && mLocationManager.isLocationEnabled());
         if (!mLocationManager.isLocationEnabled()) {
             preference.setSummary(getNoLocationSummary());
         } else {
@@ -117,7 +117,8 @@ public class WifiWakeupPreferenceController extends AbstractPreferenceController
         }
     }
 
-    @VisibleForTesting CharSequence getNoLocationSummary() {
+    @VisibleForTesting
+    CharSequence getNoLocationSummary() {
         AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo("link", null);
         CharSequence locationText = mContext.getText(R.string.wifi_wakeup_summary_no_location);
         return AnnotationSpan.linkify(locationText, linkInfo);
index d66cd8f..42fa79f 100644 (file)
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.robolectric.RuntimeEnvironment.application;
 
+import android.app.Activity;
 import android.app.KeyguardManager;
 import android.content.Intent;
 import android.os.Bundle;
@@ -35,6 +36,7 @@ import com.android.settingslib.RestrictedPreferenceHelper;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowKeyguardManager;
@@ -43,8 +45,8 @@ import org.robolectric.util.ReflectionHelpers;
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(
         shadows = {
-            ShadowUserManager.class,
-            ShadowKeyguardManager.class,
+                ShadowUserManager.class,
+                ShadowKeyguardManager.class,
         })
 public class RestrictedListPreferenceTest {
     private static final int PROFILE_USER_ID = 11;
@@ -52,6 +54,7 @@ public class RestrictedListPreferenceTest {
     private static final int UNLAUNCHABLE_REASON_QUIET_MODE = 1;
     private static final String EXTRA_UNLAUNCHABLE_REASON = "unlaunchable_reason";
 
+    private Activity mActivity;
     private ShadowUserManager mShadowUserManager;
     private ShadowKeyguardManager mShadowKeyguardManager;
     private RestrictedListPreference mPreference;
@@ -59,11 +62,12 @@ public class RestrictedListPreferenceTest {
 
     @Before
     public void setUp() {
+        mActivity = Robolectric.setupActivity(Activity.class);
         mShadowKeyguardManager =
                 Shadows.shadowOf(application.getSystemService(KeyguardManager.class));
         mMockHelper = mock(RestrictedPreferenceHelper.class);
         mShadowUserManager = ShadowUserManager.getShadow();
-        mPreference = new RestrictedListPreference(application, mock(AttributeSet.class));
+        mPreference = new RestrictedListPreference(mActivity, mock(AttributeSet.class));
         mPreference.setProfileUserId(PROFILE_USER_ID);
         ReflectionHelpers.setField(mPreference, "mHelper", mMockHelper);
     }
@@ -80,7 +84,7 @@ public class RestrictedListPreferenceTest {
         // Make sure that the performClick method on the helper is never reached.
         verify(mMockHelper, never()).performClick();
         // Assert that a CONFIRM_DEVICE_CREDENTIAL intent has been started.
-        Intent started = Shadows.shadowOf(application).getNextStartedActivity();
+        Intent started = Shadows.shadowOf(mActivity).getNextStartedActivity();
         assertThat(started.getExtras().getInt(Intent.EXTRA_USER_ID)).isEqualTo(PROFILE_USER_ID);
         assertThat(started.getAction())
                 .isEqualTo(KeyguardManager.ACTION_CONFIRM_DEVICE_CREDENTIAL_WITH_USER);
@@ -95,7 +99,7 @@ public class RestrictedListPreferenceTest {
         // Make sure that the performClick method on the helper is never reached.
         verify(mMockHelper, never()).performClick();
         // Assert that a new intent for enabling the work profile is started.
-        Intent started = Shadows.shadowOf(application).getNextStartedActivity();
+        Intent started = Shadows.shadowOf(mActivity).getNextStartedActivity();
         Bundle extras = started.getExtras();
         int reason = extras.getInt(EXTRA_UNLAUNCHABLE_REASON);
         assertThat(reason).isEqualTo(UNLAUNCHABLE_REASON_QUIET_MODE);
index 83a7272..beabd15 100644 (file)
@@ -16,8 +16,6 @@
 
 package com.android.settings;
 
-import static com.android.settings.testutils.ResIdSubject.assertResId;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Intent;
@@ -33,7 +31,7 @@ import org.junit.runner.RunWith;
 public class SetupWizardUtilsTest {
 
     @Test
-    public void testCopySetupExtras() throws Throwable {
+    public void testCopySetupExtras() {
         Intent fromIntent = new Intent();
         final String theme = "TEST_THEME";
         fromIntent.putExtra(WizardManagerHelper.EXTRA_THEME, theme);
@@ -53,7 +51,7 @@ public class SetupWizardUtilsTest {
         Intent intent = new Intent();
         intent.putExtra(WizardManagerHelper.EXTRA_THEME, WizardManagerHelper.THEME_GLIF_V2);
 
-        assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
+        assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
     }
 
     @Test
@@ -62,7 +60,7 @@ public class SetupWizardUtilsTest {
                 WizardManagerHelper.THEME_GLIF_V2_LIGHT);
         Intent intent = new Intent();
 
-        assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
+        assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
     }
 
     @Test
@@ -71,8 +69,8 @@ public class SetupWizardUtilsTest {
                 WizardManagerHelper.THEME_GLIF_V3_LIGHT);
         Intent intent = new Intent();
 
-        assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme_Light);
-        assertResId(SetupWizardUtils.getTransparentTheme(intent))
+        assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme_Light);
+        assertThat(SetupWizardUtils.getTransparentTheme(intent))
                 .isEqualTo(R.style.GlifV3Theme_Light_Transparent);
     }
 }
index cdd0838..06fd1fc 100644 (file)
@@ -25,13 +25,13 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHearingAid;
 import android.bluetooth.BluetoothManager;
 import android.bluetooth.BluetoothProfile;
 import android.content.BroadcastReceiver;
-import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 
@@ -53,7 +53,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
@@ -71,7 +71,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
     private ShadowBluetoothAdapter mShadowBluetoothAdapter;
     private BluetoothManager mBluetoothManager;
     private BluetoothDevice mBluetoothDevice;
-    private Context mContext;
+    private Activity mContext;
     private Preference mHearingAidPreference;
     private AccessibilityHearingAidPreferenceController mPreferenceController;
 
@@ -89,7 +89,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         setupBluetoothEnvironment();
         setupHearingAidEnvironment();
         mHearingAidPreference = new Preference(mContext);
@@ -145,8 +145,8 @@ public class AccessibilityHearingAidPreferenceControllerTest {
     }
 
     @Test
-    public void handleHearingAidPreferenceClick_withHearingAid_launchBluetoothDeviceDetailSetting()
-    {
+    public void handleHearingAidPreferenceClick_withHearingAid_launchBluetoothDeviceDetailSetting
+            () {
         mPreferenceController = spy(new AccessibilityHearingAidPreferenceController(mContext,
                 HEARING_AID_PREFERENCE));
         mPreferenceController.setPreference(mHearingAidPreference);
@@ -161,7 +161,8 @@ public class AccessibilityHearingAidPreferenceControllerTest {
     public void onNotSupportHearingAidProfile_doNotDoReceiverOperation() {
         //clear bluetooth supported profile
         mShadowBluetoothAdapter.clearSupportedProfiles();
-        mPreferenceController = new AccessibilityHearingAidPreferenceController(mContext, HEARING_AID_PREFERENCE);
+        mPreferenceController = new AccessibilityHearingAidPreferenceController(mContext,
+                HEARING_AID_PREFERENCE);
         mPreferenceController.setPreference(mHearingAidPreference);
         //not call registerReceiver()
         mPreferenceController.onResume();
index 6fb6f0e..2648a50 100644 (file)
@@ -59,7 +59,7 @@ public class ColorInversionPreferenceControllerTest {
 
     @Test
     public void isChecked_enabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, ON);
 
         mController.updateState(mPreference);
@@ -70,7 +70,7 @@ public class ColorInversionPreferenceControllerTest {
 
     @Test
     public void isChecked_disabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, OFF);
 
         mController.updateState(mPreference);
index 020906a..a143d25 100644 (file)
@@ -60,13 +60,13 @@ public class MagnificationGesturesPreferenceControllerTest {
 
     @Test
     public void updateState_shouldRefreshSummary() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
         mController.updateState(mPreference);
         assertThat(mPreference.getSummary())
                 .isEqualTo(mContext.getString(R.string.accessibility_feature_state_on));
 
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
         mController.updateState(mPreference);
         assertThat(mPreference.getSummary())
@@ -84,7 +84,7 @@ public class MagnificationGesturesPreferenceControllerTest {
 
     @Test
     public void isChecked_enabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
 
         assertThat(mController.isChecked()).isTrue();
@@ -92,7 +92,7 @@ public class MagnificationGesturesPreferenceControllerTest {
 
     @Test
     public void isChecked_disabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
 
         assertThat(mController.isChecked()).isFalse();
index 225a2bb..89a7884 100644 (file)
@@ -85,13 +85,13 @@ public class MagnificationNavbarPreferenceControllerTest {
 
     @Test
     public void updateState_shouldRefreshSummary() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, ON);
         mController.updateState(mPreference);
         assertThat(mPreference.getSummary())
                 .isEqualTo(mContext.getText(R.string.accessibility_feature_state_on));
 
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, OFF);
         mController.updateState(mPreference);
         assertThat(mPreference.getSummary())
@@ -109,7 +109,7 @@ public class MagnificationNavbarPreferenceControllerTest {
 
     @Test
     public void isChecked_enabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, ON);
 
         assertThat(mController.isChecked()).isTrue();
@@ -117,7 +117,7 @@ public class MagnificationNavbarPreferenceControllerTest {
 
     @Test
     public void isChecked_disabled() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, OFF);
 
         assertThat(mController.isChecked()).isFalse();
@@ -151,7 +151,7 @@ public class MagnificationNavbarPreferenceControllerTest {
         }
 
         @Implementation
-        static boolean isApplicable(Resources res) {
+        protected static boolean isApplicable(Resources res) {
             return sIsApplicable;
         }
 
index 672baaa..0681c82 100644 (file)
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.when;
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorDescription;
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SyncAdapterType;
@@ -43,7 +44,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -54,24 +55,24 @@ public class AccountSyncPreferenceControllerTest {
     @Mock(answer = RETURNS_DEEP_STUBS)
     private AccountManager mAccountManager;
 
-    private Context mContext;
+    private Activity mActivity;
     private AccountSyncPreferenceController mController;
     private Preference mPreference;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mActivity = Robolectric.setupActivity(Activity.class);
         ShadowApplication.getInstance().setSystemService(Context.ACCOUNT_SERVICE, mAccountManager);
 
         when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(
                 new AuthenticatorDescription[0]);
         when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
 
-        mPreference = new Preference(mContext);
+        mPreference = new Preference(mActivity);
         mPreference.setKey("account_sync");
 
-        mController = new AccountSyncPreferenceController(mContext);
+        mController = new AccountSyncPreferenceController(mActivity);
         mController.init(new Account("acct1", "type1"), new UserHandle(3));
     }
 
@@ -102,7 +103,7 @@ public class AccountSyncPreferenceControllerTest {
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
     }
 
     @Test
@@ -115,7 +116,7 @@ public class AccountSyncPreferenceControllerTest {
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
     }
 
     @Test
@@ -129,7 +130,7 @@ public class AccountSyncPreferenceControllerTest {
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
     }
 
     @Test
@@ -144,7 +145,7 @@ public class AccountSyncPreferenceControllerTest {
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
     }
 
     @Test
@@ -157,7 +158,7 @@ public class AccountSyncPreferenceControllerTest {
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_on));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_on));
     }
 
     @Test
@@ -179,6 +180,6 @@ public class AccountSyncPreferenceControllerTest {
         mController.updateSummary(mPreference);
 
         assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.account_sync_summary_some_on, 3, 4));
+                .isEqualTo(mActivity.getString(R.string.account_sync_summary_some_on, 3, 4));
     }
 }
index 623a76e..9e476bd 100644 (file)
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
@@ -45,6 +46,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
@@ -69,7 +71,7 @@ public class EmergencyInfoPreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mController = new EmergencyInfoPreferenceController(mContext);
-        mPreference = new Preference(RuntimeEnvironment.application);
+        mPreference = new Preference(Robolectric.setupActivity(Activity.class));
         mPreference.setKey(mController.getPreferenceKey());
         when(mScreen.findPreference(mPreference.getKey())).thenReturn(mPreference);
     }
@@ -136,16 +138,16 @@ public class EmergencyInfoPreferenceControllerTest {
         mController.updateState(preference);
 
         verify(preference).setSummary(
-            mContext.getString(R.string.emergency_info_summary, "user 1"));
+                mContext.getString(R.string.emergency_info_summary, "user 1"));
     }
 
     @Test
     public void handlePreferenceTreeClick_shouldStartActivity() {
         final ShadowApplication application = ShadowApplication.getInstance();
-        final Context context = RuntimeEnvironment.application;
-        final Preference preference = new Preference(context);
+        final Activity activity = Robolectric.setupActivity(Activity.class);
+        final Preference preference = new Preference(activity);
         preference.setKey("emergency_info");
-        mController = new EmergencyInfoPreferenceController(context);
+        mController = new EmergencyInfoPreferenceController(activity);
 
         mController.handlePreferenceTreeClick(preference);
 
index a32c23c..733e22e 100644 (file)
@@ -25,7 +25,6 @@ import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.content.Intent;
-import android.os.UserManager;
 import android.provider.Settings;
 
 import androidx.preference.Preference;
@@ -36,7 +35,9 @@ import com.android.settings.applications.ProcStatsData;
 import com.android.settings.applications.ProcessStatsDetail;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -44,11 +45,11 @@ import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class})
 public class AppMemoryPreferenceControllerTest {
 
     @Mock
@@ -67,8 +68,7 @@ public class AppMemoryPreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(true);
+        ShadowUserManager.getShadow().setIsAdminUser(true);
         mController =
                 spy(new AppMemoryPreferenceController(mContext, mFragment, null /* lifecycle */));
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
@@ -77,6 +77,11 @@ public class AppMemoryPreferenceControllerTest {
         when(mFragment.getActivity()).thenReturn(mActivity);
     }
 
+    @After
+    public void tearDown() {
+        ShadowUserManager.getShadow().reset();
+    }
+
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_developmentSettingsEnabled_shouldReturnAvailable() {
@@ -84,7 +89,7 @@ public class AppMemoryPreferenceControllerTest {
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
 
         assertThat(mController.getAvailabilityStatus())
-            .isEqualTo(BasePreferenceController.AVAILABLE);
+                .isEqualTo(BasePreferenceController.AVAILABLE);
     }
 
     @Test
@@ -93,7 +98,7 @@ public class AppMemoryPreferenceControllerTest {
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
 
         assertThat(mController.getAvailabilityStatus())
-            .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
@@ -102,7 +107,7 @@ public class AppMemoryPreferenceControllerTest {
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
 
         assertThat(mController.getAvailabilityStatus())
-            .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
index de95a1c..9f0fd31 100644 (file)
@@ -18,7 +18,7 @@ package com.android.settings.applications.appinfo;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.app.Application;
+import android.app.Activity;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ResolveInfo;
@@ -32,6 +32,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.shadows.ShadowPackageManager;
@@ -50,19 +51,19 @@ public class AppSettingPreferenceControllerTest {
 
     @Mock
     private AppInfoDashboardFragment mParent;
-    private Application mApplication;
     private ShadowPackageManager mPackageManager;
     private AppSettingPreferenceController mController;
     private Preference mPreference;
+    private Activity mActivity;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mApplication = RuntimeEnvironment.application;
-        mPackageManager = Shadows.shadowOf(mApplication.getPackageManager());
-        mController = new AppSettingPreferenceController(mApplication, "test_key");
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mPackageManager = Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager());
+        mController = new AppSettingPreferenceController(mActivity, "test_key");
         mController.setPackageName(TEST_PKG_NAME).setParentFragment(mParent);
-        mPreference = new Preference(mApplication);
+        mPreference = new Preference(mActivity);
         mPreference.setKey(mController.getPreferenceKey());
     }
 
@@ -108,7 +109,7 @@ public class AppSettingPreferenceControllerTest {
         mPackageManager.addResolveInfoForIntent(RESOLVED_INTENT, info);
 
         assertThat(mController.handlePreferenceTreeClick(mPreference)).isTrue();
-        assertThat(Shadows.shadowOf(mApplication).getNextStartedActivity().getComponent())
+        assertThat(Shadows.shadowOf(mActivity).getNextStartedActivity().getComponent())
                 .isEqualTo(TEST_INTENT.getComponent());
     }
 }
index f41ccf8..da1c6b4 100644 (file)
@@ -23,11 +23,11 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.os.UserManager;
 
 import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
@@ -39,7 +39,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DefaultAppShortcutPreferenceControllerBaseTest {
@@ -49,19 +49,17 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
     @Mock
     private AppInfoDashboardFragment mFragment;
     @Mock
-    private PreferenceScreen mScreen;
-    @Mock
     private Preference mPreference;
 
-    private Context mContext;
+    private Activity mActivity;
     private TestPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
-        mController = new TestPreferenceController(mContext, mFragment);
+        mActivity = spy(Robolectric.setupActivity(Activity.class));
+        when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        mController = new TestPreferenceController(mActivity, mFragment);
         final String key = mController.getPreferenceKey();
         when(mPreference.getKey()).thenReturn(key);
     }
@@ -95,7 +93,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
         mController.isDefault = true;
 
         mController.updateState(mPreference);
-        String yesString = mContext.getString(R.string.yes);
+        String yesString = mActivity.getString(R.string.yes);
         verify(mPreference).setSummary(yesString);
     }
 
@@ -105,7 +103,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
 
         mController.updateState(mPreference);
 
-        String noString = mContext.getString(R.string.no);
+        String noString = mActivity.getString(R.string.no);
         verify(mPreference).setSummary(noString);
     }
 
@@ -113,7 +111,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
     public void handlePreferenceTreeClick_shouldStartDefaultAppSettings() {
         mController.handlePreferenceTreeClick(mPreference);
 
-        verify(mContext).startActivity(argThat(intent -> intent != null
+        verify(mActivity).startActivity(argThat(intent -> intent != null
                 && intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT).equals(
                 DefaultAppSettings.class.getName())
                 && intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
index e625eee..d3a90da 100644 (file)
@@ -17,6 +17,7 @@
 package com.android.settings.applications.appinfo;
 
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.doAnswer;
@@ -29,12 +30,14 @@ import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.os.UserHandle;
 import android.os.UserManager;
+
 import com.android.settings.applications.AppStateInstallAppsBridge;
 import com.android.settings.applications.AppStateInstallAppsBridge.InstallAppsState;
-import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settingslib.RestrictedPreferenceHelper;
 import com.android.settingslib.RestrictedSwitchPreference;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -135,7 +138,7 @@ public class ExternalSourcesDetailsTest {
         assertThat(fragment.refreshUi()).isTrue();
 
         // Assertions
-        assertThat(shadowUserManager.hasUserRestriction(
+        assertThat(userManager.hasUserRestriction(
                 UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
                 UserHandle.of(UserHandle.myUserId()))).isTrue();
         assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
@@ -174,7 +177,7 @@ public class ExternalSourcesDetailsTest {
         assertThat(fragment.refreshUi()).isTrue();
 
         // Assertions
-        assertThat(shadowUserManager.hasUserRestriction(
+        assertThat(userManager.hasUserRestriction(
                 UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
                 UserHandle.of(UserHandle.myUserId()))).isTrue();
         assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
@@ -215,10 +218,10 @@ public class ExternalSourcesDetailsTest {
         assertThat(fragment.refreshUi()).isTrue();
 
         // Assertions
-        assertThat(shadowUserManager.hasUserRestriction(
+        assertThat(userManager.hasUserRestriction(
                 UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
                 UserHandle.of(UserHandle.myUserId()))).isTrue();
-        assertThat(shadowUserManager.hasUserRestriction(
+        assertThat(userManager.hasUserRestriction(
                 UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
                 UserHandle.of(UserHandle.myUserId()))).isTrue();
         assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
index cb62800..f09e400 100644 (file)
@@ -62,13 +62,13 @@ public class InstantAppAccountPreferenceControllerTest {
         mContext = spy(RuntimeEnvironment.application);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         mContentResolver = mContext.getContentResolver();
-        mEnableEphemeralFeature = Settings.Secure.getInt(mContentResolver,
+        mEnableEphemeralFeature = Settings.Global.getInt(mContentResolver,
                 ENABLE_EPHEMERAL_FEATURE, 1);
     }
 
     @After
     public void tearDown() {
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
                 mEnableEphemeralFeature);
     }
 
@@ -81,10 +81,10 @@ public class InstantAppAccountPreferenceControllerTest {
     }
 
     @Test
-    public void testGetAvailabilityStatus_enableWebActiions() {
+    public void testGetAvailabilityStatus_enableWebActions() {
         when(mPackageManager.getInstantAppResolverSettingsComponent()).thenReturn(mComponentName);
         mController = new InstantAppAccountPreferenceController(mContext, PREF_KEY);
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
@@ -93,7 +93,7 @@ public class InstantAppAccountPreferenceControllerTest {
     public void testGetAvailabilityStatus_disableWebActions() {
         when(mPackageManager.getInstantAppResolverSettingsComponent()).thenReturn(mComponentName);
         mController = new InstantAppAccountPreferenceController(mContext, PREF_KEY);
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
index 6a1222d..b4ff2fa 100644 (file)
@@ -57,26 +57,26 @@ public class InstantAppWebActionPreferenceControllerTest {
         mContentResolver = mContext.getContentResolver();
         mController = new InstantAppWebActionPreferenceController(mContext, PREF_KEY);
         mSwitchPreference = new SwitchPreference(mContext);
-        mEnableEphemeralFeature = Settings.Secure.getInt(mContentResolver,
+        mEnableEphemeralFeature = Settings.Global.getInt(mContentResolver,
                 ENABLE_EPHEMERAL_FEATURE, 1);
     }
 
     @After
     public void tearDown() {
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
                 mEnableEphemeralFeature);
     }
 
     @Test
     public void testGetAvailabilityStatus_enableWebActions() {
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
     public void testGetAvailabilityStatus_disableWebActions() {
-        Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
+        Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
index c01f688..fb50b3c 100644 (file)
@@ -19,18 +19,13 @@ package com.android.settings.biometrics.fingerprint;
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Mockito.verify;
-import static org.robolectric.RuntimeEnvironment.application;
 
 import android.content.Intent;
 import android.hardware.fingerprint.FingerprintManager;
 import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
-import android.media.AudioAttributes;
 import android.os.CancellationSignal;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
 import android.widget.TextView;
 
 import com.android.settings.R;
@@ -39,7 +34,7 @@ import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.testutils.shadow.ShadowVibrator;
+
 
 import org.junit.After;
 import org.junit.Before;
@@ -50,15 +45,11 @@ import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
-
-import java.util.concurrent.TimeUnit;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = {
         SettingsShadowResourcesImpl.class,
-        ShadowUtils.class,
-        ShadowVibrator.class})
+        ShadowUtils.class})
 public class FingerprintEnrollEnrollingTest {
 
     @Mock
@@ -70,7 +61,6 @@ public class FingerprintEnrollEnrollingTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ShadowUtils.setFingerprintManager(mFingerprintManager);
-        ShadowVibrator.addToServiceMap();
 
         FakeFeatureFactory.setupForTest();
         mActivity = Robolectric.buildActivity(
@@ -84,11 +74,10 @@ public class FingerprintEnrollEnrollingTest {
     @After
     public void tearDown() {
         ShadowUtils.reset();
-        ShadowVibrator.reset();
     }
 
     @Test
-    public void fingerprintEnrollHelp_shouldShowHelpTextAndVibrate() {
+    public void fingerprintEnrollHelp_shouldShowHelpText() {
         EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
 
         enrollmentCallback.onEnrollmentProgress(123);
@@ -98,17 +87,6 @@ public class FingerprintEnrollEnrollingTest {
 
         TextView errorText = mActivity.findViewById(R.id.error_text);
         assertThat(errorText.getText()).isEqualTo("test enrollment help");
-
-        Robolectric.getForegroundThreadScheduler().advanceBy(2, TimeUnit.MILLISECONDS);
-
-        ShadowVibrator shadowVibrator =
-                Shadow.extract(application.getSystemService(Vibrator.class));
-        verify(shadowVibrator.delegate).vibrate(
-                anyInt(),
-                nullable(String.class),
-                any(VibrationEffect.class),
-                nullable(String.class),
-                nullable(AudioAttributes.class));
     }
 
     private EnrollmentCallback verifyAndCaptureEnrollmentCallback() {
index 6689518..aed1ea9 100644 (file)
@@ -73,7 +73,6 @@ public class SetupFingerprintEnrollIntroductionTest {
 
         Shadows.shadowOf(application.getPackageManager())
             .setSystemFeature(PackageManager.FEATURE_FINGERPRINT, true);
-        ShadowFingerprintManager.addToServiceMap();
 
         FakeFeatureFactory.setupForTest();
 
@@ -86,7 +85,6 @@ public class SetupFingerprintEnrollIntroductionTest {
     @After
     public void tearDown() {
         ShadowStorageManager.reset();
-        ShadowFingerprintManager.reset();
     }
 
     @Test
index 446b71c..0083478 100644 (file)
@@ -26,18 +26,14 @@ import android.content.Context;
 import android.content.Intent;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
 public class AlwaysDiscoverableTest {
 
     @Mock
@@ -45,14 +41,12 @@ public class AlwaysDiscoverableTest {
 
     private AlwaysDiscoverable mAlwaysDiscoverable;
     private BluetoothAdapter mBluetoothAdapter;
-    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mAlwaysDiscoverable = new AlwaysDiscoverable(mContext);
         mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
-        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
     }
 
     @Test
@@ -82,7 +76,7 @@ public class AlwaysDiscoverableTest {
 
     @Test
     public void startSetsModeAndRegistersReceiver() {
-        mShadowBluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE);
+        mBluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE);
         mAlwaysDiscoverable.start();
         assertThat(mBluetoothAdapter.getScanMode())
                 .isEqualTo(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
@@ -110,7 +104,7 @@ public class AlwaysDiscoverableTest {
     }
 
     private void sendScanModeChangedIntent(int newMode, int previousMode) {
-        mShadowBluetoothAdapter.setScanMode(newMode);
+        mBluetoothAdapter.setScanMode(newMode);
         Intent intent = new Intent(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
         intent.putExtra(BluetoothAdapter.EXTRA_SCAN_MODE, newMode);
         intent.putExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE, previousMode);
index d129944..12c7193 100644 (file)
@@ -38,6 +38,7 @@ import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -79,7 +80,7 @@ public class BluetoothDevicePreferenceTest {
         mPreference.onClicked();
 
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
+                .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
     }
 
     @Test
@@ -90,7 +91,7 @@ public class BluetoothDevicePreferenceTest {
         mPreference.onClicked();
 
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT);
+                .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT);
     }
 
     @Test
@@ -103,9 +104,10 @@ public class BluetoothDevicePreferenceTest {
         mPreference.onClicked();
 
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
+                .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
         verify(mMetricsFeatureProvider, never())
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
+                .action(mContext,
+                        MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
     }
 
     @Test
@@ -118,9 +120,10 @@ public class BluetoothDevicePreferenceTest {
         mPreference.onClicked();
 
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
+                .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
         verify(mMetricsFeatureProvider)
-            .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
+                .action(mContext,
+                        MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
     }
 
     @Test
@@ -164,13 +167,12 @@ public class BluetoothDevicePreferenceTest {
     @Test
     public void imagingDeviceIcon_isICSettingsPrint() {
         when(mCachedBluetoothDevice.getBatteryLevel())
-            .thenReturn(BluetoothDevice.BATTERY_LEVEL_UNKNOWN);
+                .thenReturn(BluetoothDevice.BATTERY_LEVEL_UNKNOWN);
         when(mCachedBluetoothDevice.getBtClass())
-            .thenReturn(new BluetoothClass(BluetoothClass.Device.Major.IMAGING));
+                .thenReturn(new BluetoothClass(BluetoothClass.Device.Major.IMAGING));
 
         mPreference.onDeviceAttributesChanged();
-        assertThat(mPreference.getIcon()).isEqualTo(
-                mContext.getDrawable(R.drawable.ic_settings_print));
+        DrawableTestHelper.assertDrawableResId(mPreference.getIcon(), R.drawable.ic_settings_print);
     }
 
     @Test
index be86241..27ea6be 100644 (file)
@@ -32,6 +32,7 @@ import androidx.preference.Preference;
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -72,10 +73,10 @@ public class BluetoothPairingPreferenceControllerTest {
         Preference pref = mController.createBluetoothPairingPreference(ORDER);
 
         assertThat(pref.getKey()).isEqualTo(BluetoothPairingPreferenceController.KEY_PAIRING);
-        assertThat(pref.getIcon()).isEqualTo(mContext.getDrawable(R.drawable.ic_menu_add));
+        DrawableTestHelper.assertDrawableResId(pref.getIcon(), R.drawable.ic_menu_add);
         assertThat(pref.getOrder()).isEqualTo(ORDER);
         assertThat(pref.getTitle())
-            .isEqualTo(mContext.getString(R.string.bluetooth_pairing_pref_title));
+                .isEqualTo(mContext.getString(R.string.bluetooth_pairing_pref_title));
     }
 
     @Test
index bd6f508..913e7d9 100644 (file)
@@ -49,7 +49,6 @@ import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
@@ -75,7 +74,6 @@ public class DiscoverableFooterPreferenceControllerTest {
     private DiscoverableFooterPreferenceController mDiscoverableFooterPreferenceController;
     private BroadcastReceiver mBluetoothChangedReceiver;
     private ShadowApplication mShadowApplication;
-    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
 
     @Before
     public void setUp() {
@@ -91,7 +89,6 @@ public class DiscoverableFooterPreferenceControllerTest {
                 mAlwaysDiscoverable);
         mBluetoothChangedReceiver = mDiscoverableFooterPreferenceController
                 .mBluetoothChangedReceiver;
-        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
     }
 
     @Test
@@ -137,15 +134,15 @@ public class DiscoverableFooterPreferenceControllerTest {
 
     @Test
     public void onBluetoothStateChanged_bluetoothOn_updateTitle() {
-        mShadowBluetoothAdapter.setName(DEVICE_NAME);
+        BluetoothAdapter.getDefaultAdapter().setName(DEVICE_NAME);
         sendBluetoothStateChangedIntent(BluetoothAdapter.STATE_ON);
 
         assertThat(mPreference.getTitle()).isEqualTo(generateTitle(DEVICE_NAME));
     }
 
     @Test
-    public void onBluetoothStateChanged_bluetoothOff_updateTitle(){
-        mShadowBluetoothAdapter.setName(DEVICE_NAME);
+    public void onBluetoothStateChanged_bluetoothOff_updateTitle() {
+        BluetoothAdapter.getDefaultAdapter().setName(DEVICE_NAME);
         sendBluetoothStateChangedIntent(BluetoothAdapter.STATE_OFF);
 
         assertThat(mPreference.getTitle()).isEqualTo(generateTitle(null));
index ad04e7e..643d6b2 100644 (file)
@@ -28,6 +28,7 @@ import com.android.settings.R;
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -68,8 +69,8 @@ public class ConnectedUsbDeviceUpdaterTest {
         mDeviceUpdater.initUsbPreference(mContext);
 
         assertThat(mDeviceUpdater.mUsbPreference.getTitle()).isEqualTo("USB");
-        assertThat(mDeviceUpdater.mUsbPreference.getIcon())
-            .isEqualTo(mContext.getDrawable(R.drawable.ic_usb));
+        DrawableTestHelper.assertDrawableResId(
+                mDeviceUpdater.mUsbPreference.getIcon(), R.drawable.ic_usb);
         assertThat(mDeviceUpdater.mUsbPreference.isSelectable()).isTrue();
     }
 
index f34446c..ec697ad 100644 (file)
 
 package com.android.settings.connecteddevice.usb;
 
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 import android.hardware.usb.UsbManager;
 import android.hardware.usb.UsbPort;
 
@@ -34,12 +36,14 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
+import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
@@ -100,7 +104,10 @@ public class UsbDetailsHeaderControllerTest {
         mDetailsHeaderController.refresh(true, UsbManager.FUNCTION_NONE, UsbPort.POWER_ROLE_SINK,
                 UsbPort.DATA_ROLE_DEVICE);
         verify(mHeaderController).setLabel(mContext.getString(R.string.usb_pref));
-        verify(mHeaderController).setIcon(mContext.getDrawable(R.drawable.ic_usb));
+        verify(mHeaderController).setIcon(argThat((ArgumentMatcher<Drawable>) t -> {
+            DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb);
+            return true;
+        }));
         verify(mHeaderController).done(mActivity, true);
     }
 }
index c5a6bca..644f249 100644 (file)
@@ -24,6 +24,7 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -56,7 +57,7 @@ public class InstrumentedDialogFragmentTest {
         // Precondition: no metrics feature
         assertThat(fragment.getMetricsFeatureProvider()).isNull();
 
-        fragment.onAttach(ShadowApplication.getInstance().getApplicationContext());
+        fragment.onAttach(RuntimeEnvironment.application);
 
         // Verify: has metrics feature
         assertThat(fragment.getMetricsFeatureProvider()).isNotNull();
index 61ef390..d8fb65d 100644 (file)
@@ -157,8 +157,7 @@ public class CategoryManagerTest {
         mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
 
         // Sort their priorities
-        mCategoryManager.sortCategories(ShadowApplication.getInstance().getApplicationContext(),
-                mCategoryByKeyMap);
+        mCategoryManager.sortCategories(RuntimeEnvironment.application, mCategoryByKeyMap);
 
         // Verify they are now sorted.
         assertThat(category.getTile(0)).isSameAs(tile3);
index 4e788a1..634bdb7 100644 (file)
@@ -75,7 +75,6 @@ import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowActivity;
-import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
@@ -348,8 +347,7 @@ public class DashboardFeatureProviderImplTest {
         ReflectionHelpers.setField(
                 mImpl, "mPackageManager", RuntimeEnvironment.application.getPackageManager());
         FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get();
-        final ShadowApplication application = ShadowApplication.getInstance();
-        final Preference preference = new Preference(application.getApplicationContext());
+        final Preference preference = new Preference(RuntimeEnvironment.application);
         final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
index 121d9a2..855e40b 100644 (file)
@@ -22,8 +22,8 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.ComponentName;
-import android.content.Context;
 import android.content.Intent;
 import android.graphics.Typeface;
 import android.net.NetworkTemplate;
@@ -51,7 +51,6 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowActivity;
@@ -66,7 +65,7 @@ public class DataUsageSummaryPreferenceTest {
     private static final long UPDATE_LAG_MILLIS = 10000000L;
     private static final String DUMMY_CARRIER = "z-mobile";
 
-    private Context mContext;
+    private Activity mActivity;
     private PreferenceViewHolder mHolder;
     private DataUsageSummaryPreference mSummaryPreference;
     private TextView mUsageTitle;
@@ -87,9 +86,9 @@ public class DataUsageSummaryPreferenceTest {
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mSummaryPreference = new DataUsageSummaryPreference(mContext, null /* attrs */);
-        LayoutInflater inflater = LayoutInflater.from(mContext);
+        mActivity = spy(Robolectric.setupActivity(Activity.class));
+        mSummaryPreference = new DataUsageSummaryPreference(mActivity, null /* attrs */);
+        LayoutInflater inflater = LayoutInflater.from(mActivity);
         View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
                 false /* attachToRoot */);
 
@@ -227,7 +226,7 @@ public class DataUsageSummaryPreferenceTest {
         bindViewHolder();
         assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCarrierInfo.getCurrentTextColor()).isEqualTo(
-                Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary));
+                Utils.getColorAttrDefaultColor(mActivity, android.R.attr.textColorSecondary));
         assertThat(mCarrierInfo.getTypeface()).isEqualTo(Typeface.SANS_SERIF);
     }
 
@@ -240,7 +239,7 @@ public class DataUsageSummaryPreferenceTest {
         bindViewHolder();
         assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCarrierInfo.getCurrentTextColor()).isEqualTo(
-                Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError));
+                Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorError));
         assertThat(mCarrierInfo.getTypeface()).isEqualTo(
                 DataUsageSummaryPreference.SANS_SERIF_MEDIUM);
     }
@@ -273,7 +272,7 @@ public class DataUsageSummaryPreferenceTest {
         bindViewHolder();
         assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getText()).isEqualTo(
-                mContext.getString(R.string.billing_cycle_less_than_one_day_left));
+                mActivity.getString(R.string.billing_cycle_less_than_one_day_left));
     }
 
     @Test
@@ -285,7 +284,7 @@ public class DataUsageSummaryPreferenceTest {
         bindViewHolder();
         assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getText()).isEqualTo(
-                mContext.getString(R.string.billing_cycle_none_left));
+                mActivity.getString(R.string.billing_cycle_none_left));
     }
 
     @Test
@@ -384,7 +383,7 @@ public class DataUsageSummaryPreferenceTest {
         assertThat(mDataUsed.getText().toString()).isEqualTo("1.00 MB used");
         assertThat(mDataRemaining.getText().toString()).isEqualTo("9.00 MB left");
         assertThat(mDataRemaining.getVisibility()).isEqualTo(View.VISIBLE);
-        final int colorId = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorAccent);
+        final int colorId = Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorAccent);
         assertThat(mDataRemaining.getCurrentTextColor()).isEqualTo(colorId);
     }
 
@@ -400,7 +399,7 @@ public class DataUsageSummaryPreferenceTest {
         bindViewHolder();
         assertThat(mDataUsed.getText().toString()).isEqualTo("11.00 MB used");
         assertThat(mDataRemaining.getText().toString()).isEqualTo("1.00 MB over");
-        final int colorId = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError);
+        final int colorId = Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorError);
         assertThat(mDataRemaining.getCurrentTextColor()).isEqualTo(colorId);
     }
 
@@ -429,7 +428,7 @@ public class DataUsageSummaryPreferenceTest {
         bindViewHolder();
         assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mLaunchButton.getText())
-                .isEqualTo(mContext.getString(R.string.launch_mdp_app_text));
+                .isEqualTo(mActivity.getString(R.string.launch_mdp_app_text));
 
         mLaunchButton.callOnClick();
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
@@ -443,12 +442,12 @@ public class DataUsageSummaryPreferenceTest {
 
     @Test
     public void testSetUsageInfo_withOverflowStrings_dataRemainingNotShown() {
-        LayoutInflater inflater = LayoutInflater.from(mContext);
+        LayoutInflater inflater = LayoutInflater.from(mActivity);
         View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
                 false /* attachToRoot */);
 
-        TextView dataUsed = spy(new TextView(mContext));
-        TextView dataRemaining = spy(new TextView(mContext));
+        TextView dataUsed = spy(new TextView(mActivity));
+        TextView dataRemaining = spy(new TextView(mActivity));
         doReturn(dataUsed).when(mHolder).findViewById(R.id.data_usage_view);
         doReturn(dataRemaining).when(mHolder).findViewById(R.id.data_remaining_view);
 
@@ -459,10 +458,10 @@ public class DataUsageSummaryPreferenceTest {
                 10 * BillingCycleSettings.MIB_IN_BYTES,
                 true /* hasMobileData */);
 
-        when(mContext.getResources()).thenCallRealMethod();
-        when(mContext.getText(R.string.data_used_formatted))
+        when(mActivity.getResources()).thenCallRealMethod();
+        when(mActivity.getText(R.string.data_used_formatted))
                 .thenReturn("^1 ^2 used with long trailing text");
-        when(mContext.getText(R.string.data_remaining)).thenReturn("^1 left");
+        when(mActivity.getText(R.string.data_remaining)).thenReturn("^1 left");
 
         bindViewHolder();
 
@@ -497,7 +496,7 @@ public class DataUsageSummaryPreferenceTest {
 
         bindViewHolder();
         assertThat(mUsageTitle.getText().toString())
-                .isEqualTo(mContext.getString(R.string.data_usage_wifi_title));
+                .isEqualTo(mActivity.getString(R.string.data_usage_wifi_title));
         assertThat(mUsageTitle.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getText()).isEqualTo(cycleText);
@@ -505,7 +504,7 @@ public class DataUsageSummaryPreferenceTest {
         assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE);
         assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mLaunchButton.getText())
-                .isEqualTo(mContext.getString(R.string.launch_wifi_text));
+                .isEqualTo(mActivity.getString(R.string.launch_wifi_text));
 
         mLaunchButton.callOnClick();
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
index e52ff20..49e3e86 100644 (file)
@@ -39,23 +39,27 @@ import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
 import com.android.settings.testutils.shadow.ShadowDashboardFragment;
 import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
 @Config(shadows = {
-    SettingsShadowResourcesImpl.class,
-    SettingsShadowResources.SettingsShadowTheme.class,
-    ShadowUtils.class,
-    ShadowDataUsageUtils.class,
-    ShadowDashboardFragment.class
+        SettingsShadowResourcesImpl.class,
+        SettingsShadowResources.SettingsShadowTheme.class,
+        ShadowUtils.class,
+        ShadowDataUsageUtils.class,
+        ShadowDashboardFragment.class,
+        ShadowUserManager.class,
 })
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DataUsageSummaryTest {
@@ -77,15 +81,21 @@ public class DataUsageSummaryTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowContext = ShadowApplication.getInstance();
+        ShadowUserManager.getShadow().setIsAdminUser(true);
         shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
 
-        mContext = shadowContext.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
 
         mSummaryProvider = DataUsageSummary.SUMMARY_PROVIDER_FACTORY
                 .createSummaryProvider(mActivity, mSummaryLoader);
     }
 
+    @After
+    public void tearDown() {
+        ShadowUserManager.getShadow().reset();
+    }
+
     @Test
     public void formatUsage_shouldLookLikeFormatFileSize() {
         SettingsShadowResources.overrideResource(com.android.internal.R.string.fileSizeSuffix,
index 4ab4256..9a67df8 100644 (file)
@@ -39,6 +39,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -57,7 +58,7 @@ public final class DataUsageUtilsTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowContext = ShadowApplication.getInstance();
-        mContext = shadowContext.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
         shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
         shadowContext.setSystemService(Context.NETWORK_STATS_SERVICE, mNetworkStatsManager);
@@ -109,6 +110,6 @@ public final class DataUsageUtilsTest {
         DataUsageUtils.hasEthernet(mContext);
 
         verify(mNetworkStatsManager).querySummaryForUser(eq(ConnectivityManager.TYPE_ETHERNET),
-            eq(subscriber), anyLong() /* startTime */, anyLong() /* endTime */);
+                eq(subscriber), anyLong() /* startTime */, anyLong() /* endTime */);
     }
 }
index ef7e076..e472dbb 100644 (file)
@@ -68,7 +68,7 @@ public class AdbPreferenceControllerTest {
     @Test
     public void onDeveloperOptionsDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.ADB_ENABLED, -1);
 
         assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_OFF);
@@ -79,7 +79,7 @@ public class AdbPreferenceControllerTest {
     @Test
     public void onAdbDialogConfirmed_shouldEnableAdbSetting() {
         mController.onAdbDialogConfirmed();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.ADB_ENABLED, -1);
 
         assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_ON);
@@ -87,7 +87,7 @@ public class AdbPreferenceControllerTest {
 
     @Test
     public void onAdbDialogDismissed_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED,
                 AdbPreferenceController.ADB_SETTING_OFF);
         mController.onAdbDialogDismissed();
 
index 0cab3ec..9750d3a 100644 (file)
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.os.SystemProperties;
 
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
@@ -37,7 +38,6 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowSystemProperties;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class BluetoothDeviceNoNamePreferenceControllerTest {
@@ -56,7 +56,7 @@ public class BluetoothDeviceNoNamePreferenceControllerTest {
         mContext = RuntimeEnvironment.application;
         mController = new BluetoothDeviceNoNamePreferenceController(mContext);
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mPreference);
+                .thenReturn(mPreference);
         mController.displayPreference(mPreferenceScreen);
     }
 
@@ -64,8 +64,9 @@ public class BluetoothDeviceNoNamePreferenceControllerTest {
     public void onPreferenceChanged_settingEnabled_shouldTurnOnBluetoothDeviceNoName() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
-        final boolean mode = ShadowSystemProperties
-            .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false /* default */);
+        final boolean mode = SystemProperties.getBoolean(
+                BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+                false /* default */);
 
         assertThat(mode).isTrue();
     }
@@ -74,16 +75,16 @@ public class BluetoothDeviceNoNamePreferenceControllerTest {
     public void onPreferenceChanged_settingDisabled_shouldTurnOffBluetoothDeviceNoName() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final boolean mode = ShadowSystemProperties
-            .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
+        final boolean mode = SystemProperties.getBoolean(
+                BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
 
         assertThat(mode).isFalse();
     }
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        ShadowSystemProperties
-            .native_set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, Boolean.toString(true));
+        SystemProperties.set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+                Boolean.toString(true));
         mController.updateState(mPreference);
 
         verify(mPreference).setChecked(true);
@@ -91,8 +92,8 @@ public class BluetoothDeviceNoNamePreferenceControllerTest {
 
     @Test
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
-        ShadowSystemProperties
-            .native_set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, Boolean.toString(false));
+        SystemProperties.set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+                Boolean.toString(false));
         mController.updateState(mPreference);
 
         verify(mPreference).setChecked(false);
@@ -102,8 +103,9 @@ public class BluetoothDeviceNoNamePreferenceControllerTest {
     public void onDeveloperOptionsDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsDisabled();
 
-        final boolean mode = ShadowSystemProperties
-            .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
+        final boolean mode = SystemProperties.getBoolean(
+                BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+                true /* default */);
 
         assertThat(mode).isFalse();
         verify(mPreference).setEnabled(false);
index e737077..790b46a 100644 (file)
@@ -61,7 +61,7 @@ public class DebugViewAttributesPreferenceControllerTest {
     public void onPreferenceChanged_turnOnViewAttributes() {
         mController.onPreferenceChange(null, true);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
 
         assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@ public class DebugViewAttributesPreferenceControllerTest {
     public void onPreferenceChanged_turnOffViewAttributes() {
         mController.onPreferenceChange(null, false);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
 
         assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@ public class DebugViewAttributesPreferenceControllerTest {
 
     @Test
     public void updateState_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
                 DebugViewAttributesPreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
 
@@ -88,7 +88,7 @@ public class DebugViewAttributesPreferenceControllerTest {
 
     @Test
     public void updateState_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
                 DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
 
@@ -98,7 +98,7 @@ public class DebugViewAttributesPreferenceControllerTest {
     @Test
     public void onDeveloperOptionsDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
 
         assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
index fffcd4c..a3abb07 100644 (file)
@@ -25,7 +25,6 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.os.UserManager;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
 
@@ -33,6 +32,7 @@ import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.widget.SwitchBar;
 import com.android.settings.widget.ToggleSwitch;
 import com.android.settingslib.development.AbstractEnableAdbPreferenceController;
@@ -44,16 +44,15 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowUserManager;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
 public class DevelopmentSettingsDashboardFragmentTest {
 
     private ToggleSwitch mSwitch;
@@ -69,14 +68,14 @@ public class DevelopmentSettingsDashboardFragmentTest {
         mSwitch = switchBar.getSwitch();
         mDashboard = spy(new DevelopmentSettingsDashboardFragment());
         ReflectionHelpers.setField(mDashboard, "mSwitchBar", switchBar);
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShadowUserManager = Shadows.shadowOf(userManager);
+        mShadowUserManager = ShadowUserManager.getShadow();
         mShadowUserManager.setIsAdminUser(true);
     }
 
     @After
     public void tearDown() {
         ShadowEnableDevelopmentSettingWarningDialog.reset();
+        mShadowUserManager.reset();
     }
 
     @Test
@@ -87,7 +86,7 @@ public class DevelopmentSettingsDashboardFragmentTest {
     @Test
     public void shouldLogAsFeatureFlagPage() {
         assertThat(mDashboard.getMetricsCategory())
-            .isEqualTo(MetricsProto.MetricsEvent.DEVELOPMENT);
+                .isEqualTo(MetricsProto.MetricsEvent.DEVELOPMENT);
     }
 
     @Test
@@ -184,7 +183,7 @@ public class DevelopmentSettingsDashboardFragmentTest {
     public void onOemUnlockDialogConfirmed_shouldCallControllerOemConfirmed() {
         final OemUnlockPreferenceController controller = mock(OemUnlockPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
+                .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
         mDashboard.onOemUnlockDialogConfirmed();
         verify(controller).onOemUnlockConfirmed();
     }
@@ -193,7 +192,7 @@ public class DevelopmentSettingsDashboardFragmentTest {
     public void onOemUnlockDialogConfirmed_shouldCallControllerOemDismissed() {
         final OemUnlockPreferenceController controller = mock(OemUnlockPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
+                .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
         mDashboard.onOemUnlockDialogDismissed();
         verify(controller).onOemUnlockDismissed();
     }
@@ -202,7 +201,7 @@ public class DevelopmentSettingsDashboardFragmentTest {
     public void onAdbDialogConfirmed_shouldCallControllerDialogConfirmed() {
         final AdbPreferenceController controller = mock(AdbPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(AdbPreferenceController.class);
+                .getDevelopmentOptionsController(AdbPreferenceController.class);
         mDashboard.onEnableAdbDialogConfirmed();
 
         verify(controller).onAdbDialogConfirmed();
@@ -212,7 +211,7 @@ public class DevelopmentSettingsDashboardFragmentTest {
     public void onAdbDialogDismissed_shouldCallControllerOemDismissed() {
         final AdbPreferenceController controller = mock(AdbPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(AdbPreferenceController.class);
+                .getDevelopmentOptionsController(AdbPreferenceController.class);
         mDashboard.onEnableAdbDialogDismissed();
 
         verify(controller).onAdbDialogDismissed();
@@ -221,9 +220,9 @@ public class DevelopmentSettingsDashboardFragmentTest {
     @Test
     public void onAdbClearKeysDialogConfirmed_shouldCallControllerDialogConfirmed() {
         final ClearAdbKeysPreferenceController controller =
-            mock(ClearAdbKeysPreferenceController.class);
+                mock(ClearAdbKeysPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(ClearAdbKeysPreferenceController.class);
+                .getDevelopmentOptionsController(ClearAdbKeysPreferenceController.class);
         mDashboard.onAdbClearKeysDialogConfirmed();
 
         verify(controller).onClearAdbKeysConfirmed();
@@ -232,9 +231,9 @@ public class DevelopmentSettingsDashboardFragmentTest {
     @Test
     public void onDisableLogPersistDialogConfirmed_shouldCallControllerDialogConfirmed() {
         final LogPersistPreferenceController controller =
-            mock(LogPersistPreferenceController.class);
+                mock(LogPersistPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(LogPersistPreferenceController.class);
+                .getDevelopmentOptionsController(LogPersistPreferenceController.class);
         mDashboard.onDisableLogPersistDialogConfirmed();
 
         verify(controller).onDisableLogPersistDialogConfirmed();
@@ -243,9 +242,9 @@ public class DevelopmentSettingsDashboardFragmentTest {
     @Test
     public void onDisableLogPersistDialogRejected_shouldCallControllerDialogRejected() {
         final LogPersistPreferenceController controller =
-            mock(LogPersistPreferenceController.class);
+                mock(LogPersistPreferenceController.class);
         doReturn(controller).when(mDashboard)
-            .getDevelopmentOptionsController(LogPersistPreferenceController.class);
+                .getDevelopmentOptionsController(LogPersistPreferenceController.class);
         mDashboard.onDisableLogPersistDialogRejected();
 
         verify(controller).onDisableLogPersistDialogRejected();
index a6d11e9..688db76 100644 (file)
@@ -24,11 +24,11 @@ import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.os.UserManager;
 
 import androidx.lifecycle.LifecycleOwner;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.widget.SwitchBar;
 import com.android.settings.widget.SwitchBar.OnSwitchChangeListener;
@@ -41,14 +41,13 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@Config(shadows = {ShadowUtils.class, ShadowUserManager.class})
 public class DevelopmentSwitchBarControllerTest {
 
     @Mock
@@ -61,8 +60,7 @@ public class DevelopmentSwitchBarControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         final Context context = RuntimeEnvironment.application;
-        UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(true);
+        ShadowUserManager.getShadow().setIsAdminUser(true);
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
         mSwitchBar = new SwitchBar(context);
@@ -72,6 +70,7 @@ public class DevelopmentSwitchBarControllerTest {
     @After
     public void tearDown() {
         ShadowUtils.reset();
+        ShadowUserManager.getShadow().reset();
     }
 
     @Test
index 8bc3ef6..5c76e08 100644 (file)
@@ -61,7 +61,7 @@ public class DisableAutomaticUpdatesPreferenceControllerTest {
     public void onPreferenceChanged_turnOnAutomaticUpdates() {
         mController.onPreferenceChange(null, true);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, -1);
 
         assertThat(mode).isEqualTo(
@@ -72,7 +72,7 @@ public class DisableAutomaticUpdatesPreferenceControllerTest {
     public void onPreferenceChanged_turnOffAutomaticUpdates() {
         mController.onPreferenceChange(null, false);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, -1);
 
         assertThat(mode).isEqualTo(
@@ -81,7 +81,7 @@ public class DisableAutomaticUpdatesPreferenceControllerTest {
 
     @Test
     public void updateState_preferenceShouldBeChecked() {
-        Settings.System
+        Settings.Global
                 .putInt(mContext.getContentResolver(), Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
                         DisableAutomaticUpdatesPreferenceController.ENABLE_UPDATES_SETTING);
         mController.updateState(mPreference);
@@ -91,7 +91,7 @@ public class DisableAutomaticUpdatesPreferenceControllerTest {
 
     @Test
     public void updateState_preferenceShouldNotBeChecked() {
-        Settings.System
+        Settings.Global
                 .putInt(mContext.getContentResolver(), Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
                         DisableAutomaticUpdatesPreferenceController.DISABLE_UPDATES_SETTING);
         mController.updateState(mPreference);
index a71f9b0..05aee64 100644 (file)
@@ -84,7 +84,7 @@ public class KeepActivitiesPreferenceControllerTest {
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.ALWAYS_FINISH_ACTIVITIES, SETTING_VALUE_ON);
         mController.updateState(mPreference);
 
@@ -93,7 +93,7 @@ public class KeepActivitiesPreferenceControllerTest {
 
     @Test
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.ALWAYS_FINISH_ACTIVITIES, SETTING_VALUE_OFF);
         mController.updateState(mPreference);
 
index 7424753..a578429 100644 (file)
@@ -61,7 +61,7 @@ public class MobileDataAlwaysOnPreferenceControllerTest {
     public void onPreferenceChanged_turnOnPreference_shouldEnableMobileDataAlwaysOn() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@ public class MobileDataAlwaysOnPreferenceControllerTest {
     public void onPreferenceChanged_turnOffPreference_shouldDisableMobileDataAlwaysOn() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@ public class MobileDataAlwaysOnPreferenceControllerTest {
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
                 MobileDataAlwaysOnPreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
 
@@ -88,7 +88,7 @@ public class MobileDataAlwaysOnPreferenceControllerTest {
 
     @Test
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
+        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
                 MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
 
@@ -98,7 +98,7 @@ public class MobileDataAlwaysOnPreferenceControllerTest {
     @Test
     public void onDeveloperOptionsSwitchDisabled_preferenceShouldBeDisabled() {
         mController.onDeveloperOptionsSwitchDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
index 05edd14..97b4bf0 100644 (file)
@@ -72,7 +72,7 @@ public class StayAwakePreferenceControllerTest {
     public void onPreferenceChanged_turnOnStayAwake() {
         mController.onPreferenceChange(null, true);
 
-        final int mode = Settings.System.getInt(mContentResolver,
+        final int mode = Settings.Global.getInt(mContentResolver,
                 Settings.Global.STAY_ON_WHILE_PLUGGED_IN, -1);
 
         assertThat(mode).isEqualTo(StayAwakePreferenceController.SETTING_VALUE_ON);
@@ -82,7 +82,7 @@ public class StayAwakePreferenceControllerTest {
     public void onPreferenceChanged_turnOffStayAwake() {
         mController.onPreferenceChange(null, false);
 
-        final int mode = Settings.System.getInt(mContentResolver,
+        final int mode = Settings.Global.getInt(mContentResolver,
                 Settings.Global.STAY_ON_WHILE_PLUGGED_IN, -1);
 
         assertThat(mode).isEqualTo(StayAwakePreferenceController.SETTING_VALUE_OFF);
@@ -90,7 +90,7 @@ public class StayAwakePreferenceControllerTest {
 
     @Test
     public void updateState_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+        Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                 StayAwakePreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
 
@@ -99,7 +99,7 @@ public class StayAwakePreferenceControllerTest {
 
     @Test
     public void updateState_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+        Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                 StayAwakePreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
 
@@ -119,7 +119,7 @@ public class StayAwakePreferenceControllerTest {
 
     @Test
     public void observerOnChangeCalledWithSameUri_preferenceShouldBeUpdated() {
-        Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+        Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                 StayAwakePreferenceController.SETTING_VALUE_ON);
         mController.onResume();
         mController.mSettingsObserver.onChange(false,
@@ -130,7 +130,7 @@ public class StayAwakePreferenceControllerTest {
 
     @Test
     public void observerOnChangeCalledWithDifferentUri_preferenceShouldNotBeUpdated() {
-        Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+        Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                 StayAwakePreferenceController.SETTING_VALUE_ON);
         mController.onResume();
         mController.mSettingsObserver.onChange(false, null);
index e44aeb4..dc1d622 100644 (file)
@@ -61,7 +61,7 @@ public class TetheringHardwareAccelPreferenceControllerTest {
     public void onPreferenceChanged_settingEnabled_turnOnTetheringAccel() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
 
         assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@ public class TetheringHardwareAccelPreferenceControllerTest {
     public void onPreferenceChanged_settingDisabled_turnOffTetheringAccel() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
 
         assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@ public class TetheringHardwareAccelPreferenceControllerTest {
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED,
                 TetheringHardwareAccelPreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
@@ -89,7 +89,7 @@ public class TetheringHardwareAccelPreferenceControllerTest {
 
     @Test
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED,
                 TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
@@ -100,7 +100,7 @@ public class TetheringHardwareAccelPreferenceControllerTest {
     @Test
     public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsSwitchDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
 
         assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
index 742bc7f..f712423 100644 (file)
@@ -61,7 +61,7 @@ public class WifiDisplayCertificationPreferenceControllerTest {
     public void onPreferenceChanged_turnOnWifiDisplayCertification() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@ public class WifiDisplayCertificationPreferenceControllerTest {
     public void onPreferenceChanged_turnOffWifiDisplayCertification() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@ public class WifiDisplayCertificationPreferenceControllerTest {
 
     @Test
     public void updateState_preferenceShouldBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
                 WifiDisplayCertificationPreferenceController.SETTING_VALUE_ON);
         mController.updateState(mPreference);
@@ -89,7 +89,7 @@ public class WifiDisplayCertificationPreferenceControllerTest {
 
     @Test
     public void updateState_preferenceShouldNotBeChecked() {
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
                 WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
         mController.updateState(mPreference);
@@ -100,7 +100,7 @@ public class WifiDisplayCertificationPreferenceControllerTest {
     @Test
     public void onDeveloperOptionsDisabled_shouldDisablePreference() {
         mController.onDeveloperOptionsDisabled();
-        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
 
         assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
index c6ac4ae..12661e3 100644 (file)
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.verify;
 
 import android.content.ComponentName;
 import android.content.pm.PackageManager;
+import android.os.UserManager;
 import android.service.quicksettings.Tile;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -35,6 +36,9 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowUserManager;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DevelopmentTilesTest {
@@ -50,6 +54,9 @@ public class DevelopmentTilesTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mService = spy(Robolectric.setupService(DevelopmentTiles.ShowLayout.class));
+        final ShadowUserManager um = Shadows.shadowOf(
+                RuntimeEnvironment.application.getSystemService(UserManager.class));
+        um.setIsAdminUser(true);
         doReturn(mTile).when(mService).getQsTile();
     }
 
index d1d98eb..c88237d 100644 (file)
@@ -81,10 +81,8 @@ public class BuildNumberPreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        final UserManager userManager =
-                (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShadowUserManager = Shadows.shadowOf(userManager);
-        mShadowUserManager.setIsAdminUser(true);
+        mShadowUserManager = Shadows.shadowOf(
+                RuntimeEnvironment.application.getSystemService(UserManager.class));
         mFactory = FakeFeatureFactory.setupForTest();
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
@@ -101,8 +99,6 @@ public class BuildNumberPreferenceControllerTest {
     @After
     public void tearDown() {
         ShadowUtils.reset();
-        mShadowUserManager.setIsAdminUser(false);
-        mShadowUserManager.setIsDemoUser(false);
     }
 
     @Test
@@ -201,6 +197,7 @@ public class BuildNumberPreferenceControllerTest {
 
     @Test
     public void onActivityResult_confirmPasswordRequestCompleted_enableDevPref() {
+        mShadowUserManager.setIsAdminUser(true);
         mController =
                 new BuildNumberPreferenceController(mContext, mActivity, mFragment, mLifecycle);
 
index 8662c7f..9fb756a 100644 (file)
@@ -44,6 +44,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -67,7 +68,7 @@ public class DeviceNamePreferenceControllerTest {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.WIFI_SERVICE, mWifiManager);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mPreference = new ValidatedEditTextPreference(mContext);
         when(mScreen.findPreference(anyString())).thenReturn(mPreference);
         final WifiConfiguration configuration = new WifiConfiguration();
index 8ba4553..983621c 100644 (file)
@@ -22,6 +22,7 @@ import static org.mockito.Matchers.anyInt;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.pm.PackageManager;
 import android.os.storage.VolumeInfo;
 import android.view.Menu;
@@ -37,7 +38,7 @@ import org.junit.runner.RunWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -68,7 +69,7 @@ public class PrivateVolumeOptionMenuControllerTest {
         when(mMigrateMenuItem.getItemId()).thenReturn(100);
 
         mController = new PrivateVolumeOptionMenuController(
-                RuntimeEnvironment.application, mPrimaryInfo, mPm);
+                Robolectric.setupActivity(Activity.class), mPrimaryInfo, mPm);
     }
 
     @Test
index 8cb484e..fe7633c 100644 (file)
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.os.Build;
@@ -41,7 +42,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.Collections;
@@ -62,7 +63,7 @@ public class SecurityPatchLevelDialogControllerTest {
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         when(mDialog.getContext()).thenReturn(mContext);
     }
 
@@ -91,7 +92,7 @@ public class SecurityPatchLevelDialogControllerTest {
     @Test
     public void onClick_noActivityIntent_shouldDoNothing() {
         when(mPackageManager.queryIntentActivities(any(), anyInt()))
-            .thenReturn(Collections.emptyList());
+                .thenReturn(Collections.emptyList());
         mController = new SecurityPatchLevelDialogController(mDialog);
         ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
 
@@ -103,7 +104,7 @@ public class SecurityPatchLevelDialogControllerTest {
     @Test
     public void onClick_activityIntentFound_shouldStartActivity() {
         when(mPackageManager.queryIntentActivities(any(), anyInt()))
-            .thenReturn(Collections.singletonList(null));
+                .thenReturn(Collections.singletonList(null));
         mController = new SecurityPatchLevelDialogController(mDialog);
         ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
 
index b51ae00..6892191 100644 (file)
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.os.storage.VolumeInfo;
 import android.text.format.Formatter;
@@ -51,15 +52,15 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 
 import java.io.File;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = {
-    SettingsShadowResources.class,
-    SettingsShadowResources.SettingsShadowTheme.class
+        SettingsShadowResources.class,
+        SettingsShadowResources.SettingsShadowTheme.class
 })
 public class StorageSummaryDonutPreferenceControllerTest {
 
@@ -74,7 +75,7 @@ public class StorageSummaryDonutPreferenceControllerTest {
     public void setUp() throws Exception {
         SettingsShadowResources.overrideResource(
                 com.android.internal.R.string.config_headlineFontFamily, "");
-        mContext = spy(RuntimeEnvironment.application.getApplicationContext());
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFakeFeatureFactory.getMetricsFeatureProvider();
         mController = new StorageSummaryDonutPreferenceController(mContext);
@@ -82,7 +83,8 @@ public class StorageSummaryDonutPreferenceControllerTest {
 
         LayoutInflater inflater = LayoutInflater.from(mContext);
         final View view =
-            inflater.inflate(mPreference.getLayoutResource(), new LinearLayout(mContext), false);
+                inflater.inflate(mPreference.getLayoutResource(), new LinearLayout(mContext),
+                        false);
         mHolder = PreferenceViewHolder.createInstanceForTests(view);
     }
 
@@ -92,37 +94,37 @@ public class StorageSummaryDonutPreferenceControllerTest {
     }
 
     @Test
-    public void testEmpty() throws Exception {
+    public void testEmpty() {
         final long totalSpace = 32 * GIGABYTE;
         final long usedSpace = 0;
         mController.updateBytes(0, 32 * GIGABYTE);
         mController.updateState(mPreference);
 
         final Formatter.BytesResult usedSpaceResults =
-            Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+                Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
         assertThat(mPreference.getTitle().toString())
-            .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+                .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
         assertThat(mPreference.getSummary().toString())
-            .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+                .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
     }
 
     @Test
-    public void testTotalStorage() throws Exception {
+    public void testTotalStorage() {
         final long totalSpace = KILOBYTE * 10;
         final long usedSpace = KILOBYTE;
         mController.updateBytes(KILOBYTE, totalSpace);
         mController.updateState(mPreference);
 
         final Formatter.BytesResult usedSpaceResults =
-            Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+                Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
         assertThat(mPreference.getTitle().toString())
-            .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+                .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
         assertThat(mPreference.getSummary().toString())
-            .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+                .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
     }
 
     @Test
-    public void testPopulateWithVolume() throws Exception {
+    public void testPopulateWithVolume() {
         final long totalSpace = KILOBYTE * 10;
         final long freeSpace = KILOBYTE;
         final long usedSpace = totalSpace - freeSpace;
@@ -138,21 +140,21 @@ public class StorageSummaryDonutPreferenceControllerTest {
         mController.updateState(mPreference);
 
         final Formatter.BytesResult usedSpaceResults =
-            Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+                Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
         assertThat(mPreference.getTitle().toString())
-            .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+                .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
         assertThat(mPreference.getSummary().toString())
-            .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+                .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
     }
 
     @Test
-    public void testFreeUpSpaceMetricIsTriggered() throws Exception {
+    public void testFreeUpSpaceMetricIsTriggered() {
         mPreference.onBindViewHolder(mHolder);
         final Button button = (Button) mHolder.findViewById(R.id.deletion_helper_button);
 
         mPreference.onClick(button);
 
         verify(mMetricsFeatureProvider, times(1))
-            .action(any(Context.class), eq(MetricsEvent.STORAGE_FREE_UP_SPACE_NOW));
+                .action(any(Context.class), eq(MetricsEvent.STORAGE_FREE_UP_SPACE_NOW));
     }
 }
index 419aab5..4706b7d 100644 (file)
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.UserInfo;
@@ -47,7 +48,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class UserProfileControllerTest {
@@ -64,7 +65,7 @@ public class UserProfileControllerTest {
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         mPrimaryProfile = new UserInfo();
         mController = new UserProfileController(mContext, mPrimaryProfile, 0);
         when(mScreen.getContext()).thenReturn(mContext);
@@ -74,7 +75,7 @@ public class UserProfileControllerTest {
     }
 
     @Test
-    public void controllerAddsPrimaryProfilePreference() throws Exception {
+    public void controllerAddsPrimaryProfilePreference() {
         final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
         verify(mScreen).addPreference(argumentCaptor.capture());
         final Preference preference = argumentCaptor.getValue();
@@ -84,7 +85,7 @@ public class UserProfileControllerTest {
     }
 
     @Test
-    public void tappingProfilePreferenceSendsToStorageProfileFragment() throws Exception {
+    public void tappingProfilePreferenceSendsToStorageProfileFragment() {
 
         final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
         verify(mScreen).addPreference(argumentCaptor.capture());
@@ -100,7 +101,7 @@ public class UserProfileControllerTest {
     }
 
     @Test
-    public void acceptingResultUpdatesPreferenceSize() throws Exception {
+    public void acceptingResultUpdatesPreferenceSize() {
         final SparseArray<StorageAsyncLoader.AppsStorageResult> result = new SparseArray<>();
         final StorageAsyncLoader.AppsStorageResult userResult =
                 new StorageAsyncLoader.AppsStorageResult();
@@ -121,7 +122,7 @@ public class UserProfileControllerTest {
     }
 
     @Test
-    public void iconCallbackChangesPreferenceIcon() throws Exception {
+    public void iconCallbackChangesPreferenceIcon() {
         final SparseArray<Drawable> icons = new SparseArray<>();
         final UserIconDrawable drawable = mock(UserIconDrawable.class);
         when(drawable.mutate()).thenReturn(drawable);
index 0a265a1..0a661b4 100644 (file)
@@ -67,7 +67,7 @@ public class ActionDisabledByAdminDialogHelperTest {
 
     @Before
     public void setUp() {
-        mActivity = Robolectric.buildActivity(CustomActivity.class).get();
+        mActivity = Robolectric.setupActivity(CustomActivity.class);
         mActivityShadow = Shadow.extract(mActivity);
         mHelper = new ActionDisabledByAdminDialogHelper(mActivity);
     }
index 98031c9..0d3a391 100644 (file)
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.app.AppOpsManager;
 import android.content.Context;
 import android.content.Intent;
@@ -45,7 +46,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -92,7 +93,7 @@ public class RestrictAppPreferenceControllerTest {
         mOtherUserPackageOps = new AppOpsManager.PackageOps(
                 RESTRICTED_PACKAGE_NAME, OTHER_USER_UID, restrictedOps);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mAppOpsManager).when(mContext).getSystemService(Context.APP_OPS_SERVICE);
         doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(mContext).when(mFragment).getContext();
index 39555b2..55ab113 100644 (file)
@@ -18,6 +18,7 @@ package com.android.settings.fuelgauge.batterytip.actions;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
 
 import com.android.internal.logging.nano.MetricsProto;
@@ -37,7 +38,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -63,7 +64,7 @@ public class OpenRestrictAppFragmentActionTest {
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mContext = Robolectric.setupActivity(Activity.class);
 
         mAppInfos = new ArrayList<>();
         mAppInfos.add(new AppInfo.Builder()
index 371bfb4..1c8bfdb 100644 (file)
@@ -27,6 +27,7 @@ import androidx.preference.Preference;
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -59,7 +60,7 @@ public class BatteryTipTest {
 
         assertThat(preference.getTitle()).isEqualTo(TITLE);
         assertThat(preference.getSummary()).isEqualTo(SUMMARY);
-        assertThat(preference.getIcon()).isEqualTo(mContext.getDrawable(ICON_ID));
+        DrawableTestHelper.assertDrawableResId(preference.getIcon(), ICON_ID);
     }
 
     @Test
index 7d8a88e..20bf4e6 100644 (file)
@@ -82,7 +82,7 @@ public class DoubleTapPowerPreferenceControllerTest {
     @Test
     public void testIsChecked_configIsNotSet_shouldReturnTrue() {
         // Set the setting to be enabled.
-        Settings.System.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, ON);
+        Settings.Secure.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, ON);
         mController = new DoubleTapPowerPreferenceController(mContext, KEY_DOUBLE_TAP_POWER);
 
         assertThat(mController.isChecked()).isTrue();
@@ -91,7 +91,7 @@ public class DoubleTapPowerPreferenceControllerTest {
     @Test
     public void testIsChecked_configIsSet_shouldReturnFalse() {
         // Set the setting to be disabled.
-        Settings.System.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, OFF);
+        Settings.Secure.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, OFF);
         mController = new DoubleTapPowerPreferenceController(mContext, KEY_DOUBLE_TAP_POWER);
 
         assertThat(mController.isChecked()).isFalse();
index 0fce463..ae97336 100644 (file)
@@ -139,7 +139,7 @@ public class DoubleTwistPreferenceControllerTest {
     public void testIsChecked_configIsSet_shouldReturnTrue() {
         // Set the setting to be enabled.
         final Context context = RuntimeEnvironment.application;
-        Settings.System.putInt(context.getContentResolver(),
+        Settings.Secure.putInt(context.getContentResolver(),
                 Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
         mController = new DoubleTwistPreferenceController(context, KEY_DOUBLE_TWIST);
 
@@ -150,7 +150,7 @@ public class DoubleTwistPreferenceControllerTest {
     public void testIsChecked_configIsNotSet_shouldReturnFalse() {
         // Set the setting to be disabled.
         final Context context = RuntimeEnvironment.application;
-        Settings.System.putInt(context.getContentResolver(),
+        Settings.Secure.putInt(context.getContentResolver(),
                 Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 0);
         mController = new DoubleTwistPreferenceController(context, KEY_DOUBLE_TWIST);
 
index fefff22..b2816b5 100644 (file)
@@ -100,7 +100,7 @@ public class SwipeToNotificationPreferenceControllerTest {
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // Set the setting to be enabled.
         final Context context = RuntimeEnvironment.application;
-        Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
+        Settings.Secure.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
         mController = new SwipeToNotificationPreferenceController(context, KEY_SWIPE_DOWN);
 
         assertThat(mController.isChecked()).isTrue();
@@ -112,7 +112,7 @@ public class SwipeToNotificationPreferenceControllerTest {
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         // Set the setting to be disabled.
         final Context context = RuntimeEnvironment.application;
-        Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
+        Settings.Secure.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
         mController = new SwipeToNotificationPreferenceController(context, KEY_SWIPE_DOWN);
 
         assertThat(mController.isChecked()).isFalse();
index b140b52..1ce6d0a 100644 (file)
@@ -21,7 +21,9 @@ import static com.google.common.truth.Truth.assertThat;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
 
 import com.android.internal.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -69,7 +71,14 @@ public class SwipeUpPreferenceControllerTest {
                 mContext.getString(com.android.internal.R.string.config_recentsComponentName));
         final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
                 .setPackage(recentsComponentName.getPackageName());
-        mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
+        final ResolveInfo info = new ResolveInfo();
+        info.serviceInfo = new ServiceInfo();
+        info.resolvePackageName = recentsComponentName.getPackageName();
+        info.serviceInfo.packageName = info.resolvePackageName;
+        info.serviceInfo.name = recentsComponentName.getClassName();
+        info.serviceInfo.applicationInfo = new ApplicationInfo();
+        info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
+        mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
 
         assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
     }
@@ -121,7 +130,7 @@ public class SwipeUpPreferenceControllerTest {
     @Test
     public void isSliceableCorrectKey_returnsTrue() {
         final SwipeUpPreferenceController controller =
-                new SwipeUpPreferenceController(mContext,"gesture_swipe_up");
+                new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
         assertThat(controller.isSliceable()).isTrue();
     }
 
index 05060aa..a962bc1 100644 (file)
@@ -17,11 +17,11 @@ package com.android.settings.homepage.contextualcards.conditional;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
+import android.content.ComponentName;
 import android.content.Context;
-import android.content.Intent;
 import android.net.NetworkPolicyManager;
 
 import com.android.settings.Settings;
@@ -30,10 +30,11 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivity;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -43,7 +44,7 @@ public class BackgroundDataConditionControllerTest {
     private ConditionManager mConditionManager;
     @Mock
     private NetworkPolicyManager mNetworkPolicyManager;
-    private Context mContext;
+    private Activity mActivity;
     private BackgroundDataConditionController mController;
 
     @Before
@@ -51,19 +52,19 @@ public class BackgroundDataConditionControllerTest {
         MockitoAnnotations.initMocks(this);
         ShadowApplication.getInstance().setSystemService(Context.NETWORK_POLICY_SERVICE,
                 mNetworkPolicyManager);
-        mContext = spy(RuntimeEnvironment.application);
-        mController = new BackgroundDataConditionController(mContext, mConditionManager);
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mController = new BackgroundDataConditionController(mActivity, mConditionManager);
     }
 
     @Test
     public void onPrimaryClick_shouldReturn2SummaryActivity() {
-        final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
-        mController.onPrimaryClick(mContext);
-        verify(mContext).startActivity(argumentCaptor.capture());
-        Intent intent = argumentCaptor.getValue();
+        final ComponentName componentName =
+                new ComponentName(mActivity, Settings.DataUsageSummaryActivity.class);
 
-        assertThat(intent.getComponent().getClassName()).isEqualTo(
-                Settings.DataUsageSummaryActivity.class.getName());
+        mController.onPrimaryClick(mActivity);
+
+        final ShadowActivity shadowActivity = Shadow.extract(mActivity);
+        assertThat(shadowActivity.getNextStartedActivity().getComponent()).isEqualTo(componentName);
     }
 
     @Test
index 847d28c..2bc92a3 100644 (file)
 
 package com.android.settings.homepage.contextualcards.conditional;
 
-import static org.mockito.ArgumentMatchers.argThat;
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.ComponentName;
-import android.content.Context;
 
 import com.android.settings.Settings;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -31,32 +31,34 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivity;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class WorkModeConditionControllerTest {
 
     @Mock
     private ConditionManager mConditionManager;
-    private Context mContext;
+    private Activity mActivity;
     private WorkModeConditionController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mController = new WorkModeConditionController(mContext, mConditionManager);
+        mActivity = spy(Robolectric.setupActivity(Activity.class));
+        mController = new WorkModeConditionController(mActivity, mConditionManager);
     }
 
     @Test
     public void onPrimaryClick_shouldLaunchAccountsSetting() {
         final ComponentName componentName =
-                new ComponentName(mContext, Settings.AccountDashboardActivity.class);
+                new ComponentName(mActivity, Settings.AccountDashboardActivity.class);
 
-        mController.onPrimaryClick(mContext);
+        mController.onPrimaryClick(mActivity);
 
-        verify(mContext).startActivity(
-                argThat(intent -> intent.getComponent().equals(componentName)));
+        final ShadowActivity shadowActivity = Shadow.extract(mActivity);
+        assertThat(shadowActivity.getNextStartedActivity().getComponent()).isEqualTo(componentName);
     }
 
 }
index 16c694e..a15fdff 100644 (file)
@@ -31,16 +31,16 @@ public class AppLocationPermissionPreferenceControllerTest {
 
     @Test
     public void isAvailable_noLocationLinkPermission_shouldReturnFalse() {
-        Settings.System.putInt(mContext.getContentResolver(),
-                android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 0);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 0);
 
         assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
     public void displayPreference_hasLocationLinkPermission_shouldReturnTrue() {
-        Settings.System.putInt(mContext.getContentResolver(),
-                android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1);
 
         assertThat(mController.isAvailable()).isTrue();
     }
index 1687210..a8959c7 100644 (file)
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.robolectric.shadow.api.Shadow.extract;
 
+import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -59,7 +60,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -83,7 +84,7 @@ public class MobileNetworkPreferenceControllerTest {
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
         when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
index 004e352..8198042 100644 (file)
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.os.UserManager;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
@@ -32,9 +33,12 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowUserManager;
 import org.robolectric.util.ReflectionHelpers;
 
+
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
 public class TopLevelNetworkEntryPreferenceControllerTest {
@@ -53,6 +57,10 @@ public class TopLevelNetworkEntryPreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
+        final ShadowUserManager um = Shadows.shadowOf(
+                RuntimeEnvironment.application.getSystemService(UserManager.class));
+        um.setIsAdminUser(true);
+
         mController = new TopLevelNetworkEntryPreferenceController(mContext, "test_key");
 
         ReflectionHelpers.setField(mController, "mWifiPreferenceController",
@@ -61,7 +69,6 @@ public class TopLevelNetworkEntryPreferenceControllerTest {
                 mMobileNetworkPreferenceController);
         ReflectionHelpers.setField(mController, "mTetherPreferenceController",
                 mTetherPreferenceController);
-
     }
 
     @Test
index 0fda51f..dc277d2 100644 (file)
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.os.PersistableBundle;
@@ -44,7 +45,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class ApnPreferenceControllerTest {
@@ -67,7 +68,7 @@ public class ApnPreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
         doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
index 644a5bc..85a627d 100644 (file)
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
@@ -47,7 +48,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DataServiceSetupPreferenceControllerTest {
@@ -71,7 +72,7 @@ public class DataServiceSetupPreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
         doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
index 013fb08..ea6f903 100644 (file)
@@ -22,6 +22,7 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.provider.Settings;
@@ -39,7 +40,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class DataUsagePreferenceControllerTest {
@@ -55,7 +56,7 @@ public class DataUsagePreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
 
index 89e299c..8fd2c28 100644 (file)
@@ -22,6 +22,7 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.telephony.TelephonyManager;
@@ -37,7 +38,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class EuiccPreferenceControllerTest {
@@ -54,7 +55,7 @@ public class EuiccPreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(Robolectric.setupActivity(Activity.class));
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
 
index 5caf009..5dfc4f7 100644 (file)
@@ -34,7 +34,6 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -48,10 +47,10 @@ public class NfcAirplaneModeObserverTest {
 
     @Before
     public void setUp() {
-        mContext = ShadowApplication.getInstance().getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mNfcAdapter = NfcAdapter.getDefaultAdapter(mContext);
 
-        mNfcPreference = new SwitchPreference(RuntimeEnvironment.application);
+        mNfcPreference = new SwitchPreference(mContext);
 
         mNfcAirplaneModeObserver =
                 new NfcAirplaneModeObserver(mContext, mNfcAdapter, mNfcPreference);
@@ -76,7 +75,7 @@ public class NfcAirplaneModeObserverTest {
         final ContentResolver contentResolver = mContext.getContentResolver();
         Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1);
         Settings.Global.putString(contentResolver,
-            Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC);
+                Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC);
 
         mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI);
 
@@ -89,7 +88,7 @@ public class NfcAirplaneModeObserverTest {
         final ContentResolver contentResolver = mContext.getContentResolver();
         Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1);
         Settings.Global.putString(contentResolver,
-            Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Global.RADIO_WIFI);
+                Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Global.RADIO_WIFI);
 
         mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI);
 
index af53f23..06ef601 100644 (file)
@@ -54,6 +54,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -81,7 +82,7 @@ public class BlockPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = spy(new BlockPreferenceController(mContext, mImportanceListener, mBackend));
         mSwitch = new SwitchBar(mContext);
         when(mPreference.findViewById(R.id.switch_bar)).thenReturn(mSwitch);
index 0aa94c7..220269e 100644 (file)
@@ -27,6 +27,7 @@ import android.os.SystemProperties;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
 
+import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 import org.junit.Before;
@@ -35,7 +36,6 @@ import org.junit.runner.RunWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.shadows.ShadowSystemProperties;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class BootSoundPreferenceControllerTest {
@@ -52,8 +52,8 @@ public class BootSoundPreferenceControllerTest {
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        when(mContext.getResources().getBoolean(com.android.settings.R.bool.has_boot_sounds))
-            .thenReturn(true);
+        when(mContext.getResources().getBoolean(R.bool.has_boot_sounds))
+                .thenReturn(true);
         mController = new BootSoundPreferenceController(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         when(mPreference.getKey()).thenReturn(mController.getPreferenceKey());
@@ -62,7 +62,7 @@ public class BootSoundPreferenceControllerTest {
     @Test
     public void isAvailable_hasBootSounds_shouldReturnTrue() {
         when(mContext.getResources().getBoolean(
-            com.android.settings.R.bool.has_boot_sounds)).thenReturn(true);
+                R.bool.has_boot_sounds)).thenReturn(true);
 
         assertThat(mController.isAvailable()).isTrue();
     }
@@ -70,15 +70,14 @@ public class BootSoundPreferenceControllerTest {
     @Test
     public void isAvailable_noBootSounds_shouldReturnFale() {
         when(mContext.getResources().getBoolean(
-            com.android.settings.R.bool.has_boot_sounds)).thenReturn(false);
+                R.bool.has_boot_sounds)).thenReturn(false);
 
         assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
     public void displayPreference_bootSoundEnabled_shouldCheckedPreference() {
-        ShadowSystemProperties.native_set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "1");
-
+        SystemProperties.set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "true");
         mController.displayPreference(mScreen);
 
         verify(mPreference).setChecked(true);
@@ -86,7 +85,7 @@ public class BootSoundPreferenceControllerTest {
 
     @Test
     public void displayPreference_bootSoundDisabled_shouldUncheckedPreference() {
-        ShadowSystemProperties.native_set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "0");
+        SystemProperties.set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "0");
 
         mController.displayPreference(mScreen);
 
@@ -100,7 +99,7 @@ public class BootSoundPreferenceControllerTest {
         mController.handlePreferenceTreeClick(mPreference);
 
         assertThat(SystemProperties.get(
-            BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("1");
+                BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("1");
     }
 
     @Test
@@ -110,6 +109,6 @@ public class BootSoundPreferenceControllerTest {
         mController.handlePreferenceTreeClick(mPreference);
 
         assertThat(SystemProperties.get(
-            BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("0");
+                BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("0");
     }
 }
index 35c7a11..6d3f1b4 100644 (file)
@@ -42,6 +42,7 @@ import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -63,7 +64,7 @@ public class DeletedChannelsPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = new DeletedChannelsPreferenceController(mContext, mBackend);
     }
 
index 0d82fcb..649918a 100644 (file)
@@ -62,7 +62,7 @@ public class DescriptionPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = spy(new DescriptionPreferenceController(mContext));
     }
 
index 871aafb..57c8712 100644 (file)
@@ -45,6 +45,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -68,7 +69,7 @@ public class HeaderPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         PreferenceFragmentCompat fragment = mock(PreferenceFragmentCompat.class);
         when(fragment.getContext()).thenReturn(mContext);
         FragmentActivity activity = mock(FragmentActivity.class);
index c276825..6ceaffa 100644 (file)
@@ -85,7 +85,7 @@ public class LightsPreferenceControllerTest {
         // By default allow lights
         SettingsShadowResources.overrideResource(
                 com.android.internal.R.bool.config_intrusiveNotificationLed, true);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
+        Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
     }
 
     @Test
@@ -107,7 +107,7 @@ public class LightsPreferenceControllerTest {
 
     @Test
     public void testIsAvailable_notIfSettingNotAllowed() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
+        Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_DEFAULT);
         mController.onResume(appRow, channel, null, null);
index 3c83c4e..5d6e1fe 100644 (file)
@@ -51,6 +51,7 @@ import org.junit.runner.RunWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -73,7 +74,7 @@ public class NotificationPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = new TestPreferenceController(mContext, mBackend);
     }
 
index df1ee6f..235d7b2 100644 (file)
@@ -138,14 +138,14 @@ public class PulseNotificationPreferenceControllerTest {
 
     @Test
     public void isChecked_configOn_shouldReturnTrue() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
+        Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
 
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
     public void isChecked_configOff_shouldReturnFalse() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
+        Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
 
         assertThat(mController.isChecked()).isFalse();
     }
@@ -156,7 +156,7 @@ public class PulseNotificationPreferenceControllerTest {
 
         assertThat(mController.isChecked()).isTrue();
         assertThat(
-                Settings.Secure.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0))
+                Settings.System.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0))
                 .isEqualTo(1);
     }
 
@@ -166,7 +166,7 @@ public class PulseNotificationPreferenceControllerTest {
 
         assertThat(mController.isChecked()).isFalse();
         assertThat(
-                Settings.Secure.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1))
+                Settings.System.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1))
                 .isEqualTo(0);
     }
 }
index 3fc563a..cfffbdc 100644 (file)
@@ -59,6 +59,7 @@ import org.junit.runner.RunWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -90,7 +91,7 @@ public class SoundPreferenceControllerTest {
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
         SettingsShadowResources.overrideResource(com.android.internal.R.string.ringtone_silent,
                 "silent");
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = spy(new SoundPreferenceController(
                 mContext, mFragment, mImportanceListener, mBackend));
     }
index d0e7b5a..8aad02e 100644 (file)
@@ -59,6 +59,7 @@ import org.mockito.Answers;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -91,7 +92,7 @@ public class VisibilityPreferenceControllerTest {
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
         shadowApplication.setSystemService(Context.DEVICE_POLICY_SERVICE, mDm);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = spy(new VisibilityPreferenceController(mContext, mLockUtils, mBackend));
 
         // by default the lockscreen is secure
@@ -202,7 +203,7 @@ public class VisibilityPreferenceControllerTest {
         mController.updateState(pref);
 
         ArgumentCaptor<CharSequence[]> argumentCaptor =
-            ArgumentCaptor.forClass(CharSequence[].class);
+                ArgumentCaptor.forClass(CharSequence[].class);
         verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
         assertFalse(toStringList(argumentCaptor.getValue())
                 .contains(String.valueOf(VISIBILITY_NO_OVERRIDE)));
@@ -250,7 +251,7 @@ public class VisibilityPreferenceControllerTest {
         mController.updateState(pref);
 
         ArgumentCaptor<CharSequence[]> argumentCaptor =
-            ArgumentCaptor.forClass(CharSequence[].class);
+                ArgumentCaptor.forClass(CharSequence[].class);
         verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
         assertEquals(2, toStringList(argumentCaptor.getValue()).size());
         assertFalse(toStringList(argumentCaptor.getValue())
@@ -267,7 +268,7 @@ public class VisibilityPreferenceControllerTest {
         mController.updateState(pref);
 
         ArgumentCaptor<CharSequence[]> argumentCaptor =
-            ArgumentCaptor.forClass(CharSequence[].class);
+                ArgumentCaptor.forClass(CharSequence[].class);
         verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
         List<String> values = toStringList(argumentCaptor.getValue());
         assertEquals(3, values.size());
index 81ed5ef..eb89f82 100644 (file)
@@ -47,6 +47,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -61,7 +62,8 @@ public class ZenFooterPreferenceControllerTest {
     private Context mContext;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
 
@@ -69,7 +71,7 @@ public class ZenFooterPreferenceControllerTest {
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
                 mock(NotificationManager.Policy.class));
index 7caccf2..6702118 100644 (file)
@@ -72,14 +72,14 @@ public class ZenModeAlarmsPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
         mController = new ZenModeAlarmsPreferenceController(mContext, mock(Lifecycle.class));
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mockPref);
+                .thenReturn(mockPref);
         mController.displayPreference(mPreferenceScreen);
     }
 
@@ -124,7 +124,7 @@ public class ZenModeAlarmsPreferenceControllerTest {
         mController.onPreferenceChange(mockPref, allowAlarms);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
     }
 
     @Test
@@ -133,6 +133,6 @@ public class ZenModeAlarmsPreferenceControllerTest {
         mController.onPreferenceChange(mockPref, allowAlarms);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
     }
 }
\ No newline at end of file
index 4170ee8..c4b2b3d 100644 (file)
@@ -86,7 +86,7 @@ public class ZenModeBehaviorFooterPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getZenModeConfig()).thenReturn(mZenModeConfig);
 
@@ -95,7 +95,7 @@ public class ZenModeBehaviorFooterPreferenceControllerTest {
         ReflectionHelpers.setField(mController, "mZenModeConfigWrapper", mConfigWrapper);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mockPref);
+                .thenReturn(mockPref);
         mController.displayPreference(mPreferenceScreen);
     }
 
index 6701174..a3c3261 100644 (file)
@@ -77,7 +77,7 @@ public class ZenModeButtonPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         mController = new ZenModeButtonPreferenceController(mContext, mock(Lifecycle.class),
                 mock(FragmentManager.class));
index 3093b6a..79619a7 100644 (file)
@@ -79,13 +79,13 @@ public class ZenModeCallsPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mValues = mContext.getResources().getStringArray(R.array.zen_mode_contacts_values);
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
         when(mBackend.getPriorityCallSenders())
-            .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
+                .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
         when(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE))
                 .thenCallRealMethod();
         when(mBackend.getContactsSummary(NotificationManager.Policy.PRIORITY_CATEGORY_CALLS))
index b9d2978..2d5e54a 100644 (file)
@@ -57,7 +57,7 @@ public class ZenModeDurationPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         mController = new ZenModeDurationPreferenceController(mContext, mock(Lifecycle.class));
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
index 5d8be5a..9a922ba 100644 (file)
@@ -29,6 +29,8 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
 
+import androidx.fragment.app.FragmentActivity;
+
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -38,6 +40,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowToast;
@@ -45,8 +48,6 @@ import org.robolectric.shadows.ShadowToast;
 import java.util.ArrayList;
 import java.util.List;
 
-import androidx.fragment.app.FragmentActivity;
-
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
 public class ZenModeEventRuleSettingsTest {
@@ -69,7 +70,7 @@ public class ZenModeEventRuleSettingsTest {
 
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
 
         mFragment = spy(new TestFragment());
         mFragment.onAttach(application);
index f5eca34..9217f64 100644 (file)
@@ -70,7 +70,7 @@ public class ZenModeMediaPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
@@ -79,7 +79,7 @@ public class ZenModeMediaPreferenceControllerTest {
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mockPref);
+                .thenReturn(mockPref);
         mController.displayPreference(mPreferenceScreen);
     }
 
index 37ffd78..0ff0665 100644 (file)
@@ -79,13 +79,13 @@ public class ZenModeMessagesPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mValues = mContext.getResources().getStringArray(R.array.zen_mode_contacts_values);
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
         when(mBackend.getPriorityMessageSenders())
-            .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
+                .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
         when(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE))
                 .thenCallRealMethod();
         when(mBackend.getContactsSummary(NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES))
index 80e1e1b..141813b 100644 (file)
@@ -41,6 +41,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -64,7 +65,7 @@ public class ZenModePreferenceControllerTest {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = new ZenModePreferenceController(mContext, KEY_ZEN_MODE);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
         mSummaryBuilder = spy(new ZenModeSettings.SummaryBuilder(mContext));
index 4ddb5fc..de20fb4 100644 (file)
@@ -72,7 +72,7 @@ public class ZenModeRemindersPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
@@ -80,7 +80,7 @@ public class ZenModeRemindersPreferenceControllerTest {
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-            .thenReturn(mockPref);
+                .thenReturn(mockPref);
         mController.displayPreference(mPreferenceScreen);
     }
 
@@ -127,7 +127,7 @@ public class ZenModeRemindersPreferenceControllerTest {
         mController.onPreferenceChange(mockPref, allow);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
     }
 
     @Test
@@ -136,6 +136,6 @@ public class ZenModeRemindersPreferenceControllerTest {
         mController.onPreferenceChange(mockPref, allow);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
     }
 }
\ No newline at end of file
index 4518427..fd6a9af 100644 (file)
@@ -71,7 +71,7 @@ public class ZenModeRepeatCallersPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
 
@@ -142,7 +142,8 @@ public class ZenModeRepeatCallersPreferenceControllerTest {
         mController.onPreferenceChange(mockPref, allow);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS, allow);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS,
+                        allow);
     }
 
     @Test
@@ -151,6 +152,7 @@ public class ZenModeRepeatCallersPreferenceControllerTest {
         mController.onPreferenceChange(mockPref, allow);
 
         verify(mBackend)
-            .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS, allow);
+                .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS,
+                        allow);
     }
 }
\ No newline at end of file
index 2596aa1..ecfb784 100644 (file)
@@ -40,6 +40,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowToast;
@@ -66,7 +67,7 @@ public class ZenModeScheduleRuleSettingsTest {
 
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
 
         mFragment = spy(new TestFragment());
         mFragment.onAttach(application);
index b6efd78..c1634fb 100644 (file)
@@ -88,12 +88,12 @@ public class ZenModeSettingsFooterPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getZenModeConfig()).thenReturn(mZenModeConfig);
 
         mController =
-            new ZenModeSettingsFooterPreferenceController(mContext, mock(Lifecycle.class));
+                new ZenModeSettingsFooterPreferenceController(mContext, mock(Lifecycle.class));
         ReflectionHelpers.setField(mZenModeConfig, AUTOMATIC_RULES_FIELD, mInjectedAutomaticRules);
         ReflectionHelpers.setField(mController, "mZenModeConfigWrapper", mConfigWrapper);
 
@@ -276,7 +276,7 @@ public class ZenModeSettingsFooterPreferenceControllerTest {
         injectedManualRule.conditionId = mock(Uri.class);
         when(mConfigWrapper.parseManualRuleTime(injectedManualRule.conditionId)).thenReturn(time);
         when(mConfigWrapper.getFormattedTime(time, mContext.getUserId()))
-            .thenReturn(timePlaceholder);
+                .thenReturn(timePlaceholder);
         ReflectionHelpers.setField(mZenModeConfig, MANUAL_RULE_FIELD, injectedManualRule);
     }
 
index c2ca9be..9e6eb82 100644 (file)
@@ -45,6 +45,7 @@ import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -78,7 +79,7 @@ public class ZenModeStarredContactsPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
         when(testIntent.resolveActivity(any())).thenReturn(mComponentName);
 
@@ -163,8 +164,8 @@ public class ZenModeStarredContactsPreferenceControllerTest {
 
         // expected - no null  values
         List<String> contacts = mMessagesController.getStarredContacts(testCursorWithNullValues);
-        for (int i = 0 ; i < contacts.size(); i++) {
-            assertThat(contacts.get(i)).isNotNull();
+        for (String contact : contacts) {
+            assertThat(contact).isNotNull();
         }
     }
 
@@ -183,6 +184,7 @@ public class ZenModeStarredContactsPreferenceControllerTest {
 
         doAnswer(new Answer<Boolean>() {
             int count = 0;
+
             @Override
             public Boolean answer(InvocationOnMock invocation) throws Throwable {
                 if (count < size) {
index 418af78..57bc303 100644 (file)
@@ -69,7 +69,7 @@ public class ZenModeSystemPreferenceControllerTest {
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
 
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
         mController = new ZenModeSystemPreferenceController(mContext, mock(Lifecycle.class));
index 71720bf..65c39f8 100644 (file)
@@ -47,6 +47,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -62,7 +63,8 @@ public class ZenModeVisEffectPreferenceControllerTest {
     private FakeFeatureFactory mFeatureFactory;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
     private static final int PREF_METRICS = 1;
@@ -73,7 +75,7 @@ public class ZenModeVisEffectPreferenceControllerTest {
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
@@ -129,7 +131,7 @@ public class ZenModeVisEffectPreferenceControllerTest {
     public void updateState_checkedFalse_parentChecked() {
         mController = new ZenModeVisEffectPreferenceController(mContext, mock(Lifecycle.class),
                 PREF_KEY, SUPPRESSED_EFFECT_PEEK, PREF_METRICS,
-                new int[] {PARENT_EFFECT1, PARENT_EFFECT2});
+                new int[]{PARENT_EFFECT1, PARENT_EFFECT2});
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
         when(mBackend.isVisualEffectSuppressed(SUPPRESSED_EFFECT_PEEK)).thenReturn(false);
         when(mBackend.isVisualEffectSuppressed(PARENT_EFFECT1)).thenReturn(false);
@@ -145,7 +147,7 @@ public class ZenModeVisEffectPreferenceControllerTest {
     public void updateState_checkedFalse_parentNotChecked() {
         mController = new ZenModeVisEffectPreferenceController(mContext, mock(Lifecycle.class),
                 PREF_KEY, SUPPRESSED_EFFECT_PEEK, PREF_METRICS,
-                new int[] {PARENT_EFFECT1, PARENT_EFFECT2});
+                new int[]{PARENT_EFFECT1, PARENT_EFFECT2});
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
         when(mBackend.isVisualEffectSuppressed(SUPPRESSED_EFFECT_PEEK)).thenReturn(false);
         when(mBackend.isVisualEffectSuppressed(PARENT_EFFECT1)).thenReturn(false);
index 3cada1e..5ae37e3 100644 (file)
@@ -49,6 +49,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -64,7 +65,8 @@ public class ZenModeVisEffectsAllPreferenceControllerTest {
     private FakeFeatureFactory mFeatureFactory;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
 
@@ -72,7 +74,7 @@ public class ZenModeVisEffectsAllPreferenceControllerTest {
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
index f365882..a318a39 100644 (file)
@@ -47,6 +47,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -62,7 +63,8 @@ public class ZenModeVisEffectsCustomPreferenceControllerTest {
     private FakeFeatureFactory mFeatureFactory;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
 
@@ -70,7 +72,7 @@ public class ZenModeVisEffectsCustomPreferenceControllerTest {
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
index 08384af..fe45d1c 100644 (file)
@@ -49,6 +49,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -64,16 +65,16 @@ public class ZenModeVisEffectsNonePreferenceControllerTest {
     private FakeFeatureFactory mFeatureFactory;
     @Mock
     private PreferenceScreen mScreen;
-    @Mock NotificationManager mNotificationManager;
+    @Mock
+    NotificationManager mNotificationManager;
 
     private static final String PREF_KEY = "main_pref";
-    private static final int PREF_METRICS = 1;
 
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = shadowApplication.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
         when(mNotificationManager.getNotificationPolicy()).thenReturn(
index cd99f36..ab7f795 100644 (file)
@@ -31,14 +31,13 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
 import com.android.settings.testutils.shadow.ShadowUtils;
+import com.android.settingslib.testutils.DrawableTestHelper;
 import com.android.setupwizardlib.GlifLayout;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowDrawable;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(shadows = {
@@ -103,9 +102,8 @@ public class ChooseLockPatternTest {
         ChooseLockPattern activity = createActivity(true);
         ChooseLockPatternFragment fragment = (ChooseLockPatternFragment)
                 activity.getSupportFragmentManager().findFragmentById(R.id.main_content);
-
-        ShadowDrawable drawable = Shadows.shadowOf(((GlifLayout) fragment.getView()).getIcon());
-        assertThat(drawable.getCreatedFromResId()).isEqualTo(R.drawable.ic_fingerprint_header);
+        DrawableTestHelper.assertDrawableResId(((GlifLayout) fragment.getView()).getIcon(),
+                R.drawable.ic_fingerprint_header);
     }
 
     @Config(qualifiers = "sw300dp")
index 24e4e62..6a58482 100644 (file)
@@ -36,6 +36,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
@@ -57,7 +58,7 @@ public class EncryptionAndCredentialTest {
         ShadowApplication application = ShadowApplication.getInstance();
         application.setSystemService(Context.DEVICE_POLICY_SERVICE, mDevicePolicyManager);
         application.setSystemService(Context.USER_SERVICE, mUserManager);
-        mContext = application.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
     }
 
     @Test
index ee9fb16..8221b15 100644 (file)
@@ -24,49 +24,54 @@ import static com.android.settings.security.EncryptionStatusPreferenceController
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
-import android.os.UserManager;
 
 import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowLockPatternUtils.class)
+@Config(shadows = {ShadowLockPatternUtils.class, ShadowUserManager.class})
 public class EncryptionStatusPreferenceControllerTest {
 
     private Context mContext;
     private EncryptionStatusPreferenceController mController;
     private Preference mPreference;
+    private ShadowUserManager mShadowUserManager;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
         mController =
-            new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_DETAIL_PAGE);
+                new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_DETAIL_PAGE);
+        mShadowUserManager = ShadowUserManager.getShadow();
         mPreference = new Preference(mContext);
     }
 
+    @After
+    public void tearDown() {
+        mShadowUserManager.reset();
+    }
+
     @Test
     public void isAvailable_admin_true() {
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(true);
+        mShadowUserManager.setIsAdminUser(true);
 
         assertThat(mController.isAvailable()).isTrue();
     }
 
     @Test
     public void isAvailable_notAdmin_false() {
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(false);
+        mShadowUserManager.setIsAdminUser(false);
 
         assertThat(mController.isAvailable()).isFalse();
     }
@@ -83,8 +88,7 @@ public class EncryptionStatusPreferenceControllerTest {
         mController = new EncryptionStatusPreferenceController(mContext,
                 PREF_KEY_ENCRYPTION_SECURITY_PAGE);
 
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        Shadows.shadowOf(userManager).setIsAdminUser(true);
+        mShadowUserManager.setIsAdminUser(true);
         assertThat(mController.isAvailable()).isTrue();
     }
 
@@ -114,7 +118,8 @@ public class EncryptionStatusPreferenceControllerTest {
     @Test
     public void updateSummary_unencrypted_securityPage_shouldNotHaveEncryptionFragment() {
         mController =
-            new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_SECURITY_PAGE);
+                new EncryptionStatusPreferenceController(mContext,
+                        PREF_KEY_ENCRYPTION_SECURITY_PAGE);
         ShadowLockPatternUtils.setDeviceEncryptionEnabled(false);
 
         mController.updateState(mPreference);
index 26683db..a0fd21b 100644 (file)
@@ -25,7 +25,6 @@ import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -41,6 +40,7 @@ import android.os.StrictMode;
 import android.provider.Settings;
 import android.provider.SettingsSlicesContract;
 import android.util.ArraySet;
+import android.view.accessibility.AccessibilityManager;
 
 import androidx.slice.Slice;
 import androidx.slice.SliceProvider;
@@ -54,18 +54,26 @@ import com.android.settings.notification.ZenModeSliceBuilder;
 import com.android.settings.testutils.DatabaseTestUtils;
 import com.android.settings.testutils.FakeToggleController;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.wifi.WifiSlice;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 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 org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowAccessibilityManager;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -81,7 +89,9 @@ import java.util.Set;
  * TODO Investigate using ShadowContentResolver.registerProviderInternal(String, ContentProvider)
  */
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowThreadUtils.class)
+@Config(shadows = {ShadowUserManager.class, ShadowThreadUtils.class, ShadowUtils.class,
+        SlicesDatabaseAccessorTest.ShadowApplicationPackageManager.class,
+        ShadowBluetoothAdapter.class, ShadowLockPatternUtils.class})
 public class SettingsSliceProviderTest {
 
     private static final String KEY = "KEY";
@@ -97,7 +107,7 @@ public class SettingsSliceProviderTest {
 
     private Context mContext;
     private SettingsSliceProvider mProvider;
-    private SQLiteDatabase mDb;
+    @Mock
     private SliceManager mManager;
 
     private static final List<Uri> SPECIAL_CASE_PLATFORM_URIS = Arrays.asList(
@@ -113,7 +123,13 @@ public class SettingsSliceProviderTest {
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
+        // Register the fake a11y Service
+        ShadowAccessibilityManager shadowAccessibilityManager = Shadow.extract(
+                RuntimeEnvironment.application.getSystemService(AccessibilityManager.class));
+        shadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
+
         mProvider = spy(new SettingsSliceProvider());
         ShadowStrictMode.reset();
         mProvider.mSliceWeakDataCache = new HashMap<>();
@@ -122,10 +138,9 @@ public class SettingsSliceProviderTest {
         mProvider.mCustomSliceManager = spy(new CustomSliceManager(mContext));
         when(mProvider.getContext()).thenReturn(mContext);
 
-        mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
         SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
-        mManager = mock(SliceManager.class);
-        when(mContext.getSystemService(SliceManager.class)).thenReturn(mManager);
+
+        doReturn(mManager).when(mContext).getSystemService(SliceManager.class);
         when(mManager.getPinnedSlices()).thenReturn(Collections.emptyList());
 
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -562,7 +577,7 @@ public class SettingsSliceProviderTest {
     }
 
     private void insertSpecialCase(String key, boolean isPlatformSlice) {
-        ContentValues values = new ContentValues();
+        final ContentValues values = new ContentValues();
         values.put(SlicesDatabaseHelper.IndexColumns.KEY, key);
         values.put(SlicesDatabaseHelper.IndexColumns.TITLE, TITLE);
         values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, "s");
@@ -572,8 +587,15 @@ public class SettingsSliceProviderTest {
         values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, PREF_CONTROLLER);
         values.put(SlicesDatabaseHelper.IndexColumns.PLATFORM_SLICE, isPlatformSlice);
         values.put(SlicesDatabaseHelper.IndexColumns.SLICE_TYPE, SliceData.SliceType.INTENT);
-
-        mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        db.beginTransaction();
+        try {
+            db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+            db.setTransactionSuccessful();
+        } finally {
+            db.endTransaction();
+        }
+        db.close();
     }
 
     private static SliceData getDummyData() {
@@ -589,7 +611,7 @@ public class SettingsSliceProviderTest {
                 .build();
     }
 
-    @Implements(value = StrictMode.class, inheritImplementationMethods = true)
+    @Implements(value = StrictMode.class)
     public static class ShadowStrictMode {
 
         private static int sSetThreadPolicyCount;
index 949d151..bebf797 100644 (file)
@@ -21,6 +21,8 @@ import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
 
+import android.app.ApplicationPackageManager;
+import android.content.ComponentName;
 import android.content.ContentValues;
 import android.content.Context;
 import android.database.sqlite.SQLiteDatabase;
@@ -33,6 +35,10 @@ import com.android.settings.testutils.DatabaseTestUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.FakeIndexProvider;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.testutils.shadow.ShadowUtils;
 
 import org.junit.After;
 import org.junit.Before;
@@ -40,6 +46,8 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowAccessibilityManager;
 
@@ -49,6 +57,9 @@ import java.util.Locale;
 
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class, ShadowUtils.class,
+        SlicesDatabaseAccessorTest.ShadowApplicationPackageManager.class,
+        ShadowBluetoothAdapter.class, ShadowLockPatternUtils.class})
 public class SlicesDatabaseAccessorTest {
 
     private final String FAKE_TITLE = "title";
@@ -66,6 +77,7 @@ public class SlicesDatabaseAccessorTest {
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
+        ShadowUserManager.getShadow().setIsAdminUser(true);
         mAccessor = spy(new SlicesDatabaseAccessor(mContext));
         mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
         SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
@@ -78,6 +90,7 @@ public class SlicesDatabaseAccessorTest {
 
     @After
     public void cleanUp() {
+        ShadowUserManager.getShadow().reset();
         DatabaseTestUtils.clearDb(mContext);
     }
 
@@ -258,4 +271,14 @@ public class SlicesDatabaseAccessorTest {
 
         mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
     }
+
+    @Implements(ApplicationPackageManager.class)
+    public static class ShadowApplicationPackageManager extends
+            org.robolectric.shadows.ShadowApplicationPackageManager {
+
+        @Implementation
+        protected ComponentName getInstantAppResolverSettingsComponent() {
+            return null;
+        }
+    }
 }
index c92ee91..4602711 100644 (file)
@@ -60,13 +60,11 @@ public class SlicesIndexerTest {
 
     private SlicesIndexer mManager;
 
-    private SQLiteDatabase mDb;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
         mManager = spy(new SlicesIndexer(mContext));
-        mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
     }
 
     @After
@@ -84,11 +82,16 @@ public class SlicesIndexerTest {
         // Attempt indexing - should not do anything.
         mManager.run();
 
-        Cursor cursor = mDb.rawQuery("SELECT * FROM slices_index", null);
-        cursor.moveToFirst();
-        assertThat(cursor.getCount()).isEqualTo(1);
-        assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(newKey);
-        assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE))).isEqualTo(newTitle);
+        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        try (final Cursor cursor = db.rawQuery("SELECT * FROM slices_index", null)) {
+            cursor.moveToFirst();
+            assertThat(cursor.getCount()).isEqualTo(1);
+            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(newKey);
+            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE)))
+                    .isEqualTo(newTitle);
+        } finally {
+            db.close();
+        }
     }
 
     @Test
@@ -109,33 +112,43 @@ public class SlicesIndexerTest {
 
         mManager.run();
 
-        final Cursor cursor = mDb.rawQuery("SELECT * FROM slices_index", null);
-        assertThat(cursor.getCount()).isEqualTo(sliceData.size());
-
-        cursor.moveToFirst();
-        for (int i = 0; i < sliceData.size(); i++) {
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(
-                    KEYS[i]);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE))).isEqualTo(
-                    TITLES[i]);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.FRAGMENT))).isEqualTo(
-                    FRAGMENT_NAME);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.SCREENTITLE))).isEqualTo(
-                    SCREEN_TITLE);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEYWORDS))).isEqualTo(
-                    KEYWORDS);
-            assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.ICON_RESOURCE))).isEqualTo(
-                    ICON);
-            assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.CONTROLLER))).isEqualTo(
-                    PREF_CONTROLLER);
-            assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE))).isEqualTo(
-                    1 /* true */);
-            assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE))).isEqualTo(
-                    SLICE_TYPE);
-            assertThat(cursor.getInt(
-                    cursor.getColumnIndex(IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE))).isEqualTo(
-                    1 /* true */);
-            cursor.moveToNext();
+        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        try (final Cursor cursor = db.rawQuery("SELECT * FROM slices_index", null)) {
+            assertThat(cursor.getCount()).isEqualTo(sliceData.size());
+
+            cursor.moveToFirst();
+            for (int i = 0; i < sliceData.size(); i++) {
+                assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY)))
+                        .isEqualTo(KEYS[i]);
+                assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE)))
+                        .isEqualTo(TITLES[i]);
+                assertThat(
+                        cursor.getString(cursor.getColumnIndex(IndexColumns.FRAGMENT)))
+                        .isEqualTo(FRAGMENT_NAME);
+                assertThat(cursor.getString(
+                        cursor.getColumnIndex(IndexColumns.SCREENTITLE))).isEqualTo(SCREEN_TITLE);
+                assertThat(
+                        cursor.getString(cursor.getColumnIndex(IndexColumns.KEYWORDS)))
+                        .isEqualTo(KEYWORDS);
+                assertThat(
+                        cursor.getInt(cursor.getColumnIndex(IndexColumns.ICON_RESOURCE)))
+                        .isEqualTo(ICON);
+                assertThat(
+                        cursor.getString(cursor.getColumnIndex(IndexColumns.CONTROLLER)))
+                        .isEqualTo(PREF_CONTROLLER);
+                assertThat(cursor.getInt(
+                        cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE)))
+                        .isEqualTo(1 /* true */);
+                assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE)))
+                        .isEqualTo(SLICE_TYPE);
+                assertThat(cursor.getInt(
+                        cursor.getColumnIndex(
+                                IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE)))
+                        .isEqualTo(1 /* true */);
+                cursor.moveToNext();
+            }
+        } finally {
+            db.close();
         }
     }
 
@@ -143,8 +156,15 @@ public class SlicesIndexerTest {
         final ContentValues values = new ContentValues();
         values.put(IndexColumns.KEY, key);
         values.put(IndexColumns.TITLE, title);
-
-        mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+        db.beginTransaction();
+        try {
+            db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+            db.setTransactionSuccessful();
+        } finally {
+            db.endTransaction();
+        }
+        db.close();
     }
 
     private List<SliceData> getDummyIndexableData() {
index 1b5bdf8..2ed1907 100644 (file)
@@ -169,7 +169,6 @@ public class AudioOutputSwitchPreferenceControllerTest {
     @After
     public void tearDown() {
         mShadowAudioManager.reset();
-        mShadowMediaRouter.reset();
         ShadowBluetoothUtils.reset();
     }
 
index 58df2d2..e3014b7 100644 (file)
@@ -164,7 +164,6 @@ public class HandsFreeProfileOutputPreferenceControllerTest {
     @After
     public void tearDown() {
         mShadowAudioManager.reset();
-        mShadowMediaRouter.reset();
         ShadowBluetoothUtils.reset();
     }
 
index 9e1ac3d..cdee894 100644 (file)
@@ -165,7 +165,6 @@ public class MediaOutputPreferenceControllerTest {
     @After
     public void tearDown() {
         mShadowAudioManager.reset();
-        mShadowMediaRouter.reset();
         ShadowBluetoothUtils.reset();
     }
 
index ff09412..542a4a1 100644 (file)
@@ -18,10 +18,10 @@ package com.android.settings.system;
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
-import android.os.UserManager;
 import android.provider.Settings;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
 import org.junit.After;
@@ -29,10 +29,10 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowUserManager;
+import org.robolectric.annotation.Config;
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
 public class FactoryResetPreferenceControllerTest {
 
     private static final String FACTORY_RESET_KEY = "factory_reset";
@@ -45,8 +45,7 @@ public class FactoryResetPreferenceControllerTest {
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShadowUserManager = Shadows.shadowOf(userManager);
+        mShadowUserManager = ShadowUserManager.getShadow();
 
         mController = new FactoryResetPreferenceController(mContext);
     }
index 597389a..5f787a9 100644 (file)
@@ -23,6 +23,7 @@ import android.content.Context;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.XmlTestUtils;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 
 import org.junit.After;
 import org.junit.Before;
@@ -34,18 +35,20 @@ import org.robolectric.annotation.Config;
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = SettingsShadowResources.class)
+@Config(shadows = {SettingsShadowResources.class, ShadowUserManager.class})
 public class SystemDashboardFragmentTest {
 
     @Before
     public void setup() {
         SettingsShadowResources.overrideResource(
                 com.android.internal.R.bool.config_supportSystemNavigationKeys, true);
+        ShadowUserManager.getShadow().setIsAdminUser(true);
     }
 
     @After
     public void tearDown() {
         SettingsShadowResources.reset();
+        ShadowUserManager.getShadow().reset();
     }
 
     @Test
index 4245c96..bd17fd7 100644 (file)
@@ -29,13 +29,13 @@ import android.content.Context;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.SystemUpdateManager;
-import android.os.UserManager;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 
 import org.junit.After;
 import org.junit.Before;
@@ -44,15 +44,14 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowUserManager;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
 public class SystemUpdatePreferenceControllerTest {
 
     @Mock
@@ -69,8 +68,7 @@ public class SystemUpdatePreferenceControllerTest {
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        mShadowUserManager = Shadows.shadowOf(userManager);
+        mShadowUserManager = ShadowUserManager.getShadow();
 
         ShadowApplication.getInstance().setSystemService(Context.SYSTEM_UPDATE_SERVICE,
                 mSystemUpdateManager);
@@ -140,7 +138,8 @@ public class SystemUpdatePreferenceControllerTest {
         mController.updateState(mPreference);
 
         assertThat(mPreference.getSummary())
-            .isEqualTo(mContext.getString(R.string.android_version_summary, Build.VERSION.RELEASE));
+                .isEqualTo(mContext.getString(R.string.android_version_summary,
+                        Build.VERSION.RELEASE));
     }
 
     @Test
@@ -155,7 +154,7 @@ public class SystemUpdatePreferenceControllerTest {
         mController.updateState(mPreference);
 
         assertThat(mPreference.getSummary())
-            .isEqualTo(mContext.getString(R.string.android_version_summary, testReleaseName));
+                .isEqualTo(mContext.getString(R.string.android_version_summary, testReleaseName));
     }
 
     @Test
@@ -167,6 +166,6 @@ public class SystemUpdatePreferenceControllerTest {
         mController.updateState(mPreference);
 
         assertThat(mPreference.getSummary())
-            .isEqualTo(mContext.getString(R.string.android_version_pending_update_summary));
+                .isEqualTo(mContext.getString(R.string.android_version_pending_update_summary));
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java b/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java
deleted file mode 100644 (file)
index 3803d75..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils;
-
-import static com.google.common.truth.Truth.assertAbout;
-
-import static org.robolectric.RuntimeEnvironment.application;
-
-import androidx.annotation.Nullable;
-
-import com.google.common.truth.ComparableSubject;
-import com.google.common.truth.FailureStrategy;
-import com.google.common.truth.SubjectFactory;
-
-/**
- * Custom subject for use with {@link com.google.common.truth.Truth}, to provide a more readable
- * error message, so that instead of "Not true that 2130706432 equals to 17170444", it will say
- * "Not true that color/my_color equals to android:color/black".
- *
- * <p>Usage:
- * <pre>{@code
- *     ResIdSubject.assertResId(activity.getThemeResId()).isEqualTo(android.R.style.Theme_Material)
- * }</pre>
- */
-public class ResIdSubject extends ComparableSubject<ResIdSubject, Integer> {
-
-    public static final SubjectFactory<ResIdSubject, Integer> FACTORY =
-            new SubjectFactory<ResIdSubject, Integer>() {
-                @Override
-                public ResIdSubject getSubject(
-                        FailureStrategy failureStrategy, Integer integer) {
-                    return new ResIdSubject(failureStrategy, integer);
-                }
-            };
-
-    public static ResIdSubject assertResId(int resId) {
-        return assertAbout(ResIdSubject.FACTORY).that(resId);
-    }
-
-    public ResIdSubject(
-            FailureStrategy failureStrategy,
-            @Nullable Integer integer) {
-        super(failureStrategy, integer);
-    }
-
-    public void isEqualTo(int other) {
-        Integer subject = getSubject();
-        if (subject == null || subject != other) {
-            fail("equals to", resIdToString(other));
-        }
-    }
-
-    @Override
-    protected String getDisplaySubject() {
-        String resourceName = "<" + resIdToString(getSubject()) + ">";
-        String customName = internalCustomName();
-        if (customName != null) {
-            return customName + " " + resourceName;
-        } else {
-            return resourceName;
-        }
-    }
-
-    private static String resIdToString(int resId) {
-        return application.getResources().getResourceName(resId);
-    }
-}
index 49197e8..5e5410c 100644 (file)
@@ -88,6 +88,8 @@ public class SettingsRobolectricTestRunner extends RobolectricTestRunner {
             paths.add(new ResourcePath(null,
                 Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/main/res")), null));
             paths.add(new ResourcePath(null,
+                    Fs.fromURL(new URL("file:out/target/common/obj/JAVA_LIBRARIES/robolectric_android-all-stub_intermediates/classes/raw-res/res")), null));
+            paths.add(new ResourcePath(null,
                 Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/gingerbread/res")), null));
             paths.add(new ResourcePath(null,
                 Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/recyclerview/res")), null));
index bd21cdc..c673508 100644 (file)
@@ -24,13 +24,10 @@ import androidx.annotation.Nullable;
 
 import com.android.settings.R;
 
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.android.XmlResourceParserImpl;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.RealObject;
-import org.robolectric.shadows.ShadowAssetManager;
 import org.robolectric.shadows.ShadowResources;
 import org.robolectric.util.ReflectionHelpers;
 import org.robolectric.util.ReflectionHelpers.ClassParameter;
@@ -40,7 +37,7 @@ import org.w3c.dom.Node;
  * Shadow Resources and Theme classes to handle resource references that Robolectric shadows cannot
  * handle because they are too new or private.
  */
-@Implements(value = Resources.class, inheritImplementationMethods = true)
+@Implements(value = Resources.class)
 public class SettingsShadowResources extends ShadowResources {
 
     @RealObject
@@ -178,17 +175,14 @@ public class SettingsShadowResources extends ShadowResources {
                 ClassParameter.from(int.class, id));
     }
 
-    @Implements(value = Theme.class, inheritImplementationMethods = true)
-    public static class SettingsShadowTheme extends ShadowTheme {
+    @Implements(value = Theme.class)
+    public static class SettingsShadowTheme extends ShadowLegacyTheme {
 
         @RealObject
         Theme realTheme;
 
-        private ShadowAssetManager mAssetManager = Shadows.shadowOf(
-                RuntimeEnvironment.application.getAssets());
-
         @Implementation
-        public TypedArray obtainStyledAttributes(
+        protected TypedArray obtainStyledAttributes(
                 AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) {
             // Replace all private string references with a placeholder.
             if (set != null) {
@@ -228,7 +222,7 @@ public class SettingsShadowResources extends ShadowResources {
         }
 
         private Resources getResources() {
-            return ReflectionHelpers.callInstanceMethod(ShadowTheme.class, this, "getResources");
+            return ReflectionHelpers.callInstanceMethod(ShadowLegacyTheme.class, this, "getResources");
         }
     }
 }
index dd51687..c76991e 100644 (file)
@@ -26,15 +26,14 @@ import com.android.settings.R;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowResourcesImpl;
+import org.robolectric.shadows.ShadowLegacyResourcesImpl;
 
 @Implements(
         value = ResourcesImpl.class,
-        inheritImplementationMethods = true,
         isInAndroidSdk = false,
         minSdk = 26
 )
-public class SettingsShadowResourcesImpl extends ShadowResourcesImpl {
+public class SettingsShadowResourcesImpl extends ShadowLegacyResourcesImpl {
 
     @Implementation
     public Drawable loadDrawable(Resources wrapper, TypedValue value, int id, int density,
index fc3ff0c..1e64dd1 100644 (file)
@@ -30,7 +30,7 @@ import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.RealObject;
 import org.robolectric.shadows.ShadowTypedArray;
 
-@Implements(value = TypedArray.class, inheritImplementationMethods = true)
+@Implements(value = TypedArray.class)
 public class SettingsShadowTypedArray extends ShadowTypedArray {
 
     @RealObject
index 0f67bbf..babf9e3 100644 (file)
@@ -23,13 +23,12 @@ import com.android.settings.testutils.CustomActivity;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowApplication;
 
 @Implements(CustomActivity.class)
 public class ShadowActivity extends org.robolectric.shadows.ShadowActivity {
 
     @Implementation
-    public void startActivityAsUser(Intent intent, UserHandle user) {
-        ShadowApplication.getInstance().startActivity(intent);
+    protected void startActivityAsUser(Intent intent, UserHandle user) {
+        realActivity.startActivity(intent);
     }
 }
index bcf90c4..cea50f3 100644 (file)
@@ -38,7 +38,7 @@ import org.robolectric.shadow.api.Shadow;
 
 import java.util.ArrayList;
 
-@Implements(value = AudioManager.class, inheritImplementationMethods = true)
+@Implements(value = AudioManager.class)
 public class ShadowAudioManager extends org.robolectric.shadows.ShadowAudioManager {
     private int mRingerMode;
     private int mDeviceCodes;
index 30837f4..371c1b1 100644 (file)
@@ -24,11 +24,9 @@ import org.robolectric.annotation.Implements;
 import java.util.ArrayList;
 import java.util.List;
 
-@Implements(value = BluetoothAdapter.class, inheritImplementationMethods = true)
+@Implements(value = BluetoothAdapter.class)
 public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBluetoothAdapter {
 
-    private String mName;
-    private int mScanMode;
     private int mState;
     private List<Integer> mSupportedProfiles = new ArrayList<Integer>();
 
@@ -45,25 +43,6 @@ public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBlueto
         mSupportedProfiles.clear();
     }
 
-    public void setName(String name) {
-        mName = name;
-    }
-
-    @Implementation
-    public String getName() {
-        return mName;
-    }
-
-    @Implementation
-    public void setScanMode(int scanMode) {
-        mScanMode = scanMode;
-    }
-
-    @Implementation
-    public int getScanMode() {
-        return mScanMode;
-    }
-
     @Implementation
     public int getConnectionState() {
         return mState;
index a96f781..0b1665c 100644 (file)
@@ -21,7 +21,7 @@ import android.bluetooth.BluetoothDevice;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 
-@Implements(value = BluetoothDevice.class, inheritImplementationMethods = true)
+@Implements(value = BluetoothDevice.class)
 public class ShadowBluetoothDevice extends org.robolectric.shadows.ShadowBluetoothDevice {
 
     private int mMessageAccessPermission = BluetoothDevice.ACCESS_UNKNOWN;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java
deleted file mode 100644 (file)
index 75526c8..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.settings.testutils.shadow;
-
-import android.content.Context;
-import android.util.AttributeSet;
-
-import androidx.cardview.widget.CardView;
-
-import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowFrameLayout;
-
-/**
- * Shadow for CardView to get around view not implemented error.
- */
-@Implements(CardView.class)
-public class ShadowCardView extends ShadowFrameLayout {
-
-    public void __constructor__(Context context, AttributeSet attrs, int defStyleAttr) {
-        // do nothing
-    }
-
-}
index 05687f4..794fcbb 100644 (file)
@@ -24,7 +24,7 @@ import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 
-@Implements(value = ConnectivityManager.class, inheritImplementationMethods = true)
+@Implements(value = ConnectivityManager.class)
 public class ShadowConnectivityManager extends org.robolectric.shadows.ShadowConnectivityManager {
 
     private final SparseBooleanArray mSupportedNetworkTypes = new SparseBooleanArray();
index e4be318..cb185a5 100644 (file)
@@ -16,7 +16,6 @@
 
 package com.android.settings.testutils.shadow;
 
-import android.content.Context;
 import android.hardware.fingerprint.Fingerprint;
 import android.hardware.fingerprint.FingerprintManager;
 
@@ -25,36 +24,16 @@ import androidx.annotation.NonNull;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
 import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.IntStream;
 
 @Implements(FingerprintManager.class)
-public class ShadowFingerprintManager {
+public class ShadowFingerprintManager extends org.robolectric.shadows.ShadowFingerprintManager {
 
-    private static Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
-
-    /**
-     * Call this in @Before of a test to add FingerprintManager to Robolectric's system service
-     * map. Otherwise getSystemService(FINGERPRINT_SERVICE) will return null.
-     */
-    public static void addToServiceMap() {
-        getSystemServiceMap().put(Context.FINGERPRINT_SERVICE, FingerprintManager.class.getName());
-    }
-
-    @Resetter
-    public static void reset() {
-        getSystemServiceMap().remove(Context.FINGERPRINT_SERVICE);
-    }
 
     public boolean hardwareDetected = true;
 
@@ -62,22 +41,22 @@ public class ShadowFingerprintManager {
     private List<Fingerprint> mFingerprints = Collections.emptyList();
 
     @Implementation
-    public boolean isHardwareDetected() {
+    protected boolean isHardwareDetected() {
         return hardwareDetected;
     }
 
     @Implementation
-    public boolean hasEnrolledFingerprints() {
+    protected boolean hasEnrolledFingerprints() {
         return !mFingerprints.isEmpty();
     }
 
     @Implementation
-    public List<Fingerprint> getEnrolledFingerprints() {
+    protected List<Fingerprint> getEnrolledFingerprints() {
         return mFingerprints;
     }
 
     @Implementation
-    public List<Fingerprint> getEnrolledFingerprints(int userId) {
+    protected List<Fingerprint> getEnrolledFingerprints(int userId) {
         return mFingerprints;
     }
 
index 68c92a7..a69faba 100644 (file)
@@ -21,12 +21,11 @@ import static org.robolectric.RuntimeEnvironment.application;
 import android.media.MediaRouter;
 
 import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
 import org.robolectric.shadow.api.Shadow;
 
 import java.util.concurrent.CopyOnWriteArrayList;
 
-@Implements(value = MediaRouter.class, inheritImplementationMethods = true)
+@Implements(value = MediaRouter.class)
 public class ShadowMediaRouter extends org.robolectric.shadows.ShadowMediaRouter {
     MediaRouter.RouteInfo mSelectedRoute;
 
@@ -42,16 +41,12 @@ public class ShadowMediaRouter extends org.robolectric.shadows.ShadowMediaRouter
     }
 
     public void removeCallback(MediaRouter.Callback cb) {
-        if (mCallbacks.contains(cb))
+        if (mCallbacks.contains(cb)) {
             mCallbacks.remove(cb);
+        }
     }
 
     public static ShadowMediaRouter getShadow() {
         return Shadow.extract(application.getSystemService(MediaRouter.class));
     }
-
-    @Resetter
-    public void reset() {
-        mCallbacks.clear();
-    }
 }
index bb691cb..61278f3 100644 (file)
@@ -37,7 +37,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-@Implements(value = UserManager.class, inheritImplementationMethods = true)
+@Implements(value = UserManager.class)
 public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager {
 
     private SparseArray<UserInfo> mUserInfos = new SparseArray<>();
@@ -46,7 +46,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     private final List<UserInfo> mUserProfileInfos = new ArrayList<>();
     private final Set<Integer> mManagedProfiles = new HashSet<>();
     private boolean mIsQuietModeEnabled = false;
-    private int[] profileIdsForUser;
+    private int[] profileIdsForUser = new int[0];
     private boolean mUserSwitchEnabled;
 
 
@@ -59,6 +59,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
         mManagedProfiles.clear();
         mIsQuietModeEnabled = false;
         mUserSwitchEnabled = false;
+        profileIdsForUser = new int[0];
     }
 
     public void setUserInfo(int userHandle, UserInfo userInfo) {
@@ -66,7 +67,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     }
 
     @Implementation
-    public UserInfo getUserInfo(int userHandle) {
+    protected UserInfo getUserInfo(int userHandle) {
         return mUserInfos.get(userHandle);
     }
 
@@ -75,12 +76,12 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     }
 
     @Implementation
-    public List<UserInfo> getProfiles(@UserIdInt int userHandle) {
+    protected List<UserInfo> getProfiles(@UserIdInt int userHandle) {
         return mUserProfileInfos;
     }
 
     @Implementation
-    public int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
+    protected int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
         int[] ids = new int[mUserProfileInfos.size()];
         for (int i = 0; i < mUserProfileInfos.size(); i++) {
             ids[i] = mUserProfileInfos.get(i).id;
@@ -99,12 +100,12 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     }
 
     @Implementation
-    public int getCredentialOwnerProfile(@UserIdInt int userHandle) {
+    protected int getCredentialOwnerProfile(@UserIdInt int userHandle) {
         return userHandle;
     }
 
     @Implementation
-    public boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) {
+    protected boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) {
         return mRestrictions.contains(restrictionKey);
     }
 
@@ -118,7 +119,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     }
 
     @Implementation
-    public List<EnforcingUser> getUserRestrictionSources(
+    protected List<EnforcingUser> getUserRestrictionSources(
             String restrictionKey, UserHandle userHandle) {
         // Return empty list when there is no enforcing user, otherwise might trigger
         // NullPointer Exception in RestrictedLockUtils.checkIfRestrictionEnforced.
@@ -133,7 +134,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     }
 
     @Implementation
-    public boolean isManagedProfile(@UserIdInt int userId) {
+    protected boolean isManagedProfile(@UserIdInt int userId) {
         return mManagedProfiles.contains(userId);
     }
 
@@ -142,7 +143,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     }
 
     @Implementation
-    public boolean isQuietModeEnabled(UserHandle userHandle) {
+    protected boolean isQuietModeEnabled(UserHandle userHandle) {
         return mIsQuietModeEnabled;
     }
 
@@ -151,7 +152,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     }
 
     @Implementation
-    public int[] getProfileIdsWithDisabled(@UserIdInt int userId) {
+    protected int[] getProfileIdsWithDisabled(@UserIdInt int userId) {
         return profileIdsForUser;
     }
 
@@ -160,7 +161,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
     }
 
     @Implementation
-    public boolean isUserSwitcherEnabled() {
+    protected boolean isUserSwitcherEnabled() {
         return mUserSwitchEnabled;
     }
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java
deleted file mode 100644 (file)
index 69e08d5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils.shadow;
-
-import static org.mockito.Mockito.mock;
-
-import android.content.Context;
-import android.media.AudioAttributes;
-import android.os.SystemVibrator;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.fakes.RoboVibrator;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Map;
-
-@Implements(SystemVibrator.class)
-public class ShadowVibrator {
-
-    private static Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
-
-    public static void addToServiceMap() {
-        getSystemServiceMap().put(Context.VIBRATOR_SERVICE, SystemVibrator.class.getName());
-    }
-
-    public static void reset() {
-        getSystemServiceMap().put(Context.VIBRATOR_SERVICE, RoboVibrator.class.getName());
-    }
-
-    public final Vibrator delegate = mock(Vibrator.class);
-
-    @Implementation
-    public void vibrate(int uid, String opPkg, VibrationEffect vibe, String reason,
-            AudioAttributes attributes) {
-        delegate.vibrate(uid, opPkg, vibe, reason, attributes);
-    }
-}
index d9bc486..b41b396 100644 (file)
@@ -30,7 +30,7 @@ import org.robolectric.shadow.api.Shadow;
 import java.util.Collections;
 import java.util.List;
 
-@Implements(value = WifiManager.class, inheritImplementationMethods = true)
+@Implements(value = WifiManager.class)
 public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager {
 
     public WifiConfiguration savedWifiConfig;
index 0f95334..2bd12c3 100644 (file)
@@ -38,6 +38,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -57,9 +58,8 @@ public class AddUserWhenLockedPreferenceControllerTest {
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication shadowContext = ShadowApplication.getInstance();
+        mContext = RuntimeEnvironment.application;
         mUserManager = ShadowUserManager.getShadow();
-        mContext = shadowContext.getApplicationContext();
         mController = new AddUserWhenLockedPreferenceController(mContext, "fake_key");
     }
 
index 04b314e..a791528 100644 (file)
@@ -64,7 +64,7 @@ public class AutoSyncDataPreferenceControllerTest {
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowContext = ShadowApplication.getInstance();
         shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
-        mContext = shadowContext.getApplicationContext();
+        mContext = RuntimeEnvironment.application;
         mController = new AutoSyncDataPreferenceController(mContext, mFragment);
         mConfirmSyncFragment = new AutoSyncDataPreferenceController.ConfirmAutoSyncChangeFragment();
         mConfirmSyncFragment.setTargetFragment(mFragment, 0);
index fb75701..1850f3a 100644 (file)
@@ -36,6 +36,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
@@ -58,9 +59,9 @@ public class AutoSyncPersonalDataPreferenceControllerTest {
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
         ShadowApplication shadowContext = ShadowApplication.getInstance();
         shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
-        mContext = shadowContext.getApplicationContext();
         mController = new AutoSyncPersonalDataPreferenceController(mContext, mFragment);
         mPreference = new Preference(mContext);
         mPreference.setKey(mController.getPreferenceKey());
index cf4a37f..e5519a3 100644 (file)
@@ -18,6 +18,7 @@ package com.android.settings.wallpaper;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 
@@ -30,7 +31,7 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class WallpaperTypePreferenceControllerTest {
@@ -43,7 +44,7 @@ public class WallpaperTypePreferenceControllerTest {
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mContext = Robolectric.setupActivity(Activity.class);
         mController = new WallpaperTypePreferenceController(mContext, "pref_key");
         mIntent = new Intent();
         mPreference = new Preference(mContext);
index 042341b..aaffa93 100644 (file)
@@ -40,6 +40,7 @@ import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settingslib.drawer.CategoryKey;
 import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.testutils.DrawableTestHelper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -67,8 +68,8 @@ public class RoundedHomepageIconTest {
                 new RoundedHomepageIcon(mContext, new ColorDrawable(Color.BLACK));
 
         assertThat(icon.getNumberOfLayers()).isEqualTo(2);
-        assertThat(icon.getDrawable(0))
-                .isEqualTo(mContext.getDrawable(R.drawable.ic_homepage_generic_background));
+        DrawableTestHelper.assertDrawableResId(icon.getDrawable(0),
+                R.drawable.ic_homepage_generic_background);
     }
 
     @Test
index ebfe74c..04b85dc 100644 (file)
@@ -60,11 +60,10 @@ public class SwitchBarTest {
 
         assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
                 .isEqualTo(mContext.getString(defaultOffText));
-        assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND));
 
         mBar.setChecked(true);
 
-        assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND_ACTIVATED));
+        assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
         assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
                 .isEqualTo(mContext.getString(defaultOnText));
     }
@@ -75,12 +74,12 @@ public class SwitchBarTest {
         final int offText = R.string.manage_space_text;
 
         mBar.setSwitchBarText(onText, offText);
-        assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND));
         assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
                 .isEqualTo(mContext.getString(offText));
 
         mBar.setChecked(true);
-        assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND_ACTIVATED));
+        assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
+
         assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
                 .isEqualTo(mContext.getString(onText));
     }
index c9be0f6..bf4c6e7 100644 (file)
@@ -86,7 +86,7 @@ public class NotifyOpenNetworkPreferenceControllerTest {
     @Test
     public void updateState_preferenceSetCheckedWhenSettingsAreEnabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 1);
 
         mController.updateState(preference);
@@ -97,7 +97,7 @@ public class NotifyOpenNetworkPreferenceControllerTest {
     @Test
     public void updateState_preferenceSetCheckedWhenSettingsAreDisabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0);
 
         mController.updateState(preference);
index ffe1d8f..6deae7f 100644 (file)
@@ -48,16 +48,14 @@ import org.robolectric.RuntimeEnvironment;
 @RunWith(SettingsRobolectricTestRunner.class)
 public class WifiWakeupPreferenceControllerTest {
 
-    private static final String NO_LOCATION_STRING =
-            "Unavailable because location is turned off. Turn on location.";
     private Context mContext;
     private WifiWakeupPreferenceController mController;
     @Mock
-    DashboardFragment mFragment;
+    private DashboardFragment mFragment;
     @Mock
-    LocationManager mLocationManager;
+    private LocationManager mLocationManager;
     @Mock
-    SwitchPreference mPreference;
+    private SwitchPreference mPreference;
 
     @Before
     public void setUp() {
@@ -67,7 +65,7 @@ public class WifiWakeupPreferenceControllerTest {
         mController.mLocationManager = mLocationManager;
         mController.mPreference = mPreference;
 
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
         doReturn(true).when(mLocationManager).isLocationEnabled();
     }
 
@@ -105,7 +103,8 @@ public class WifiWakeupPreferenceControllerTest {
     @Test
     public void updateState_preferenceSetCheckedWhenWakeupSettingEnabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
 
         mController.updateState(preference);
 
@@ -116,7 +115,7 @@ public class WifiWakeupPreferenceControllerTest {
     @Test
     public void updateState_preferenceSetUncheckedWhenWakeupSettingDisabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
 
         mController.updateState(preference);
 
@@ -127,8 +126,8 @@ public class WifiWakeupPreferenceControllerTest {
     @Test
     public void updateState_preferenceSetUncheckedWhenWifiScanningDisabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
 
         mController.updateState(preference);
 
@@ -138,7 +137,7 @@ public class WifiWakeupPreferenceControllerTest {
     @Test
     public void updateState_preferenceSetUncheckedWhenWakeupSettingEnabledNoLocation() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
         doReturn(false).when(mLocationManager).isLocationEnabled();
 
         mController.updateState(preference);
@@ -150,7 +149,7 @@ public class WifiWakeupPreferenceControllerTest {
     @Test
     public void updateState_preferenceSetUncheckedWhenWakeupSettingDisabledLocationEnabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
         doReturn(false).when(mLocationManager).isLocationEnabled();
 
         mController.updateState(preference);
@@ -162,8 +161,8 @@ public class WifiWakeupPreferenceControllerTest {
     @Test
     public void updateState_preferenceSetUncheckedWhenWifiScanningDisabledLocationEnabled() {
         final SwitchPreference preference = mock(SwitchPreference.class);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
-        Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+        Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
         doReturn(false).when(mLocationManager).isLocationEnabled();
 
         mController.updateState(preference);