diff --git a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java index fabe295feff..f920fdc7dc0 100644 --- a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java +++ b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java @@ -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; } } diff --git a/src/com/android/settings/network/telephony/CarrierPreferenceController.java b/src/com/android/settings/network/telephony/CarrierPreferenceController.java index 406ef7b1cd4..8210c4b86c4 100644 --- a/src/com/android/settings/network/telephony/CarrierPreferenceController.java +++ b/src/com/android/settings/network/telephony/CarrierPreferenceController.java @@ -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; } diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java index 065f18261aa..b1124f8eee1 100644 --- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java +++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java @@ -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; diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index f3973829cc2..e85c9172d00 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -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 diff --git a/src/com/android/settings/network/telephony/RoamingPreferenceController.java b/src/com/android/settings/network/telephony/RoamingPreferenceController.java index b2eba08f9f9..688268c7887 100644 --- a/src/com/android/settings/network/telephony/RoamingPreferenceController.java +++ b/src/com/android/settings/network/telephony/RoamingPreferenceController.java @@ -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; diff --git a/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java index 6258f9df014..a5498bc505f 100644 --- a/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java +++ b/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java @@ -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())); } diff --git a/src/com/android/settings/notification/NotificationPreferenceController.java b/src/com/android/settings/notification/NotificationPreferenceController.java index c3552cc333a..22f07be6d6b 100644 --- a/src/com/android/settings/notification/NotificationPreferenceController.java +++ b/src/com/android/settings/notification/NotificationPreferenceController.java @@ -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) { diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java index 29e3d6b453e..3d9cf456640 100644 --- a/src/com/android/settings/slices/SliceDataConverter.java +++ b/src/com/android/settings/slices/SliceDataConverter.java @@ -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); } } diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java index 0ccd223e593..0c39429ccfc 100644 --- a/src/com/android/settings/slices/SlicesIndexer.java +++ b/src/com/android/settings/slices/SlicesIndexer.java @@ -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 indexData = getSliceData(); insertSliceData(database, indexData); @@ -85,6 +84,7 @@ class SlicesIndexer implements Runnable { } finally { database.endTransaction(); } + database.close(); } @VisibleForTesting diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java index bf9d1679c74..435f8f1e22c 100644 --- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java +++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java b/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java index d66cd8f777b..42fa79f5823 100644 --- a/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java index 83a727258fe..beabd15a4b6 100644 --- a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java +++ b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java @@ -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); } } diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java index cdd08384823..06fd1fcbea6 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java index 6fb6f0e8d4e..2648a50b79b 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java index 020906aee5c..a143d2577a9 100644 --- a/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java index 225a2bbe90a..89a7884a11e 100644 --- a/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java @@ -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; } diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java index 672baaab576..0681c82ee71 100644 --- a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java @@ -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)); } } diff --git a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java index 623a76efff2..9e476bd789b 100644 --- a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java index a32c23c343b..733e22ebf6b 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java index de95a1c2ded..9f0fd3182a1 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java @@ -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()); } } diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java index f41ccf89603..da1c6b44f65 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java @@ -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) diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java index e625eee5c9c..d3a90da27f5 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java index cb628001fb6..f09e400ad96 100644 --- a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java index 6a1222d21e5..b4ff2fa645f 100644 --- a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java index c01f688e904..fb50b3cfb93 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java @@ -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() { diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java index 6689518e3a7..aed1ea949fd 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java b/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java index 446b71c4728..0083478039c 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java index d1299442b8a..12c71936ebd 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java index be86241fd4a..27ea6be8d59 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java index bd6f508201c..913e7d91325 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java @@ -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)); diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java index ad04e7e52ab..643d6b2d838 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java @@ -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(); } diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java index f34446cfbf8..ec697ad4b66 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java @@ -16,10 +16,12 @@ 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) t -> { + DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb); + return true; + })); verify(mHeaderController).done(mActivity, true); } } diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java index c5a6bcaab8d..644f2497eee 100644 --- a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java b/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java index 61ef390353a..d8fb65df4e0 100644 --- a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java index 4e788a11516..634bdb7be13 100644 --- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java @@ -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"); diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java index 121d9a25540..855e40bb948 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java index e52ff20ac50..49e3e864c9f 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java @@ -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, diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java index 4ab42569fa8..9a67df861b1 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java @@ -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 */); } } diff --git a/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java index ef7e076e285..e472dbb14a7 100644 --- a/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java index 0cab3ece6df..9750d3a4ae7 100644 --- a/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java index e737077eb13..790b46a4c02 100644 --- a/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java index fffcd4c8f0f..a3abb073472 100644 --- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java index a6d11e903d8..688db762832 100644 --- a/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java index 8bc3ef68b17..5c76e086a10 100644 --- a/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java index a71f9b0848a..05aee64eac0 100644 --- a/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java index 7424753a66f..a578429d63c 100644 --- a/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java index 05edd14ee49..97b4bf0ff93 100644 --- a/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java index e44aeb46cec..dc1d6223eb5 100644 --- a/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java index 742bc7fe9ac..f7124230e52 100644 --- a/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java index c6ac4ae1c77..12661e30a70 100644 --- a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java +++ b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java @@ -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(); } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java index d1d98eb9e0e..c88237d7b7c 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java index 8662c7f652d..9fb756ad204 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java index 8ba455345ad..983621c734f 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java index 8cb484eb69e..fe7633c2978 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java index b51ae00549b..6892191943f 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java @@ -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)); } } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java index 419aab50b1e..4706b7d959d 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java @@ -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 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 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 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 icons = new SparseArray<>(); final UserIconDrawable drawable = mock(UserIconDrawable.class); when(drawable.mutate()).thenReturn(drawable); diff --git a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java index 0a265a11fe3..0a661b4badd 100644 --- a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java +++ b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java index 98031c92e72..0d3a391e666 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java index 39555b2ba9d..55ab113163b 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java @@ -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() diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java index 371bfb45796..1c8bfdb97ef 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java index 7d8a88ed0cd..20bf4e6af14 100644 --- a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java index 0fce4630076..ae97336da3a 100644 --- a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java index fefff22bff0..b2816b52bcd 100644 --- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java index b140b52411c..1ce6d0a67bd 100644 --- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java @@ -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(); } diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java index 05060aa59ba..a962bc19569 100644 --- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java +++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java @@ -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 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 diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java index 847d28cf889..2bc92a38919 100644 --- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java +++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java @@ -16,12 +16,12 @@ package com.android.settings.homepage.contextualcards.conditional; -import static org.mockito.ArgumentMatchers.argThat; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.spy; + +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); } } diff --git a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java index 16c694ec4d0..a15fdff40d5 100644 --- a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java @@ -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(); } diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java index 16872103bbe..a8959c7ac56 100644 --- a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java index 004e352d192..8198042efb4 100644 --- a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java index 0fda51f3d49..dc277d2b4cc 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java index 644a5bc0c34..85a627d35d8 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java @@ -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( diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java index 013fb087e0f..ea6f903cecc 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java index 89e299c2e3e..8fd2c28b2a0 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java b/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java index 5caf0092712..5dfc4f7366f 100644 --- a/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java +++ b/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java index af53f23af3b..06ef6010c1a 100644 --- a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java index 0aa94c7c1ab..220269ebef4 100644 --- a/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java @@ -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"); } } diff --git a/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java index 35c7a1150bd..6d3f1b42b2f 100644 --- a/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java index 0d82fcb6089..649918ab969 100644 --- a/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java @@ -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)); } diff --git a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java index 871aafb91d9..57c87129926 100644 --- a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java index c2768259a32..6ceaffa7ee8 100644 --- a/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java index 3c83c4e76b6..5d6e1fed142 100644 --- a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java index df1ee6fdf89..235d7b277e3 100644 --- a/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java @@ -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); } } diff --git a/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java index 3fc563a3a8e..cfffbdcfd76 100644 --- a/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java @@ -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)); } diff --git a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java index d0e7b5a1847..8aad02e1a0d 100644 --- a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java @@ -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 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 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 argumentCaptor = - ArgumentCaptor.forClass(CharSequence[].class); + ArgumentCaptor.forClass(CharSequence[].class); verify(pref, times(1)).setEntryValues(argumentCaptor.capture()); List values = toStringList(argumentCaptor.getValue()); assertEquals(3, values.size()); diff --git a/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java index 81ed5ef0bd4..eb89f827a1d 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java @@ -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)); diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java index 7caccf2d2fc..67021187142 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java index 4170ee89f19..c4b2b3d0c0f 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java index 67011740ea9..a3c326138fd 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java @@ -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)); diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java index 3093b6a0c0f..79619a74446 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java @@ -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)) diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java index b9d297834e0..2d5e54ae23f 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java index 5d8be5a3ac2..9a922ba3a5c 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java index f5eca34bf62..9217f64393a 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java index 37ffd786118..0ff0665334e 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java @@ -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)) diff --git a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java index 80e1e1ba878..141813b52b1 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java @@ -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)); diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java index 4ddb5fca455..de20fb4f38b 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java index 4518427ad6c..fd6a9af1fbf 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java index 2596aa14f01..ecfb7842c91 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java index b6efd78dda7..c1634fb597c 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java index c2ca9be131e..9e6eb82e8bc 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java @@ -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 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() { int count = 0; + @Override public Boolean answer(InvocationOnMock invocation) throws Throwable { if (count < size) { diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java index 418af7880b3..57bc3036175 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java @@ -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)); diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java index 71720bfaffe..65c39f87287 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java index 3cada1ed793..5ae37e37aeb 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java @@ -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( diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java index f3658823a43..a318a399262 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java @@ -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( diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java index 08384af610a..fe45d1c5db2 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java @@ -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( diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java index cd99f36fae5..ab7f7954cc5 100644 --- a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java +++ b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java @@ -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") diff --git a/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java b/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java index 24e4e6245da..6a5848215f9 100644 --- a/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java +++ b/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java index ee9fb16d1fa..8221b1547b4 100644 --- a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java index 26683db80c6..a0fd21be3d0 100644 --- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java @@ -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 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; diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java index 949d1513ffa..bebf7978f48 100644 --- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java +++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java @@ -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; + } + } } diff --git a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java index c92ee915316..4602711a121 100644 --- a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java +++ b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java @@ -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()); + 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(); + 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 getDummyIndexableData() { diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java index 1b5bdf8a918..2ed1907f8e9 100644 --- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java @@ -169,7 +169,6 @@ public class AudioOutputSwitchPreferenceControllerTest { @After public void tearDown() { mShadowAudioManager.reset(); - mShadowMediaRouter.reset(); ShadowBluetoothUtils.reset(); } diff --git a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java index 58df2d2014d..e3014b7165d 100644 --- a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java @@ -164,7 +164,6 @@ public class HandsFreeProfileOutputPreferenceControllerTest { @After public void tearDown() { mShadowAudioManager.reset(); - mShadowMediaRouter.reset(); ShadowBluetoothUtils.reset(); } diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java index 9e1ac3d6183..cdee8947d97 100644 --- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java @@ -165,7 +165,6 @@ public class MediaOutputPreferenceControllerTest { @After public void tearDown() { mShadowAudioManager.reset(); - mShadowMediaRouter.reset(); ShadowBluetoothUtils.reset(); } diff --git a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java index ff094123a6c..542a4a1bab1 100644 --- a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java @@ -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); } diff --git a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java index 597389a0da1..5f787a968a9 100644 --- a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java index 4245c96e450..bd17fd72aee 100644 --- a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java @@ -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 index 3803d75c0ca..00000000000 --- a/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java +++ /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". - * - *

Usage: - *

{@code
- *     ResIdSubject.assertResId(activity.getThemeResId()).isEqualTo(android.R.style.Theme_Material)
- * }
- */ -public class ResIdSubject extends ComparableSubject { - - public static final SubjectFactory FACTORY = - new SubjectFactory() { - @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); - } -} diff --git a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java index 49197e831c0..5e5410ce0cd 100644 --- a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java +++ b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java @@ -87,6 +87,8 @@ public class SettingsRobolectricTestRunner extends RobolectricTestRunner { Fs.fromURL(new URL("file:frameworks/base/core/res/res")), null)); 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, diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java index bd21cdc3cb3..c6735087350 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java @@ -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"); } } } diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java index dd51687296b..c76991e218c 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java @@ -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, diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java index fc3ff0c1646..1e64dd117bc 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java index 0f67bbf045e..babf9e3855c 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java @@ -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); } } diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java index bcf90c440fb..cea50f3b2ab 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java @@ -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; diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java index 30837f41451..371c1b10798 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java @@ -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 mSupportedProfiles = new ArrayList(); @@ -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; diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java index a96f781dded..0b1665ca82d 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java @@ -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 index 75526c85051..00000000000 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java +++ /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 - } - -} diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java index 05687f48944..794fcbbf2b8 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java index e4be3185ea7..cb185a501bb 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java @@ -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 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 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 getEnrolledFingerprints() { + protected List getEnrolledFingerprints() { return mFingerprints; } @Implementation - public List getEnrolledFingerprints(int userId) { + protected List getEnrolledFingerprints(int userId) { return mFingerprints; } diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java index 68c92a71569..a69fabaa93a 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java @@ -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(); - } } diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java index bb691cb382d..61278f38529 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java @@ -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 mUserInfos = new SparseArray<>(); @@ -46,7 +46,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager private final List mUserProfileInfos = new ArrayList<>(); private final Set 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 getProfiles(@UserIdInt int userHandle) { + protected List 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 getUserRestrictionSources( + protected List 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 index 69e08d5cf08..00000000000 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java +++ /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 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); - } -} diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java index d9bc486be5d..b41b396dd66 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java @@ -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; diff --git a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java index 0f95334d486..2bd12c30c5b 100644 --- a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java @@ -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"); } diff --git a/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java index 04b314e2bd5..a7915283d91 100644 --- a/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java index fb757017e82..1850f3a2253 100644 --- a/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java @@ -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()); diff --git a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java index cf4a37f24b1..e5519a314b8 100644 --- a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java b/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java index 042341b24db..aaffa93ba0b 100644 --- a/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java +++ b/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java index ebfe74c3581..04b85dc50db 100644 --- a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java +++ b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java @@ -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)); } diff --git a/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java index c9be0f6324e..bf4c6e7afdf 100644 --- a/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java index ffe1d8fe84d..6deae7f5c10 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java @@ -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);