From 234854cb047205b98a007120e2d6323f2bac97be Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 30 Mar 2018 14:43:37 -0700 Subject: [PATCH 1/2] Remove more wrappers in favor of new Robolectric support Bug: 76167422 Test: robotests Change-Id: Ic71a181bee6f90f25f9fa2a748cf708887495394 --- .../connecteddevice/usb/UsbBackend.java | 14 ++--- .../BrightnessLevelPreferenceController.java | 17 ++---- .../PrintSettingPreferenceController.java | 9 ++-- .../wifi/SavedAccessPointsWifiSettings.java | 9 ++-- .../android/settings/wifi/WifiSettings.java | 8 ++- .../wifi/WriteWifiConfigToNfcDialog.java | 13 +++-- .../AccessibilityServiceInfoWrapper.java | 47 ---------------- .../settings/wrapper/PowerManagerWrapper.java | 49 ----------------- .../settings/wrapper/PrintManagerWrapper.java | 54 ------------------- .../settings/wrapper/UsbManagerWrapper.java | 30 ----------- .../settings/wrapper/WifiManagerWrapper.java | 53 ------------------ .../android/settings/DisplaySettingsTest.java | 4 +- .../connecteddevice/usb/UsbBackendTest.java | 36 ++++--------- ...ightnessLevelPreferenceControllerTest.java | 30 ++++++----- ...PrintSettingsPreferenceControllerTest.java | 9 ++-- ...va => ShadowAccessibilityServiceInfo.java} | 10 ++-- ...erWrapper.java => ShadowPowerManager.java} | 7 +-- .../SavedAccessPointsWifiSettingsTest.java | 22 +++++--- .../wifi/WriteWifiConfigToNfcDialogTest.java | 9 ++-- 19 files changed, 86 insertions(+), 344 deletions(-) delete mode 100644 src/com/android/settings/wrapper/AccessibilityServiceInfoWrapper.java delete mode 100644 src/com/android/settings/wrapper/PowerManagerWrapper.java delete mode 100644 src/com/android/settings/wrapper/PrintManagerWrapper.java delete mode 100644 src/com/android/settings/wrapper/UsbManagerWrapper.java delete mode 100644 src/com/android/settings/wrapper/WifiManagerWrapper.java rename tests/robotests/src/com/android/settings/testutils/shadow/{ShadowAccessibilityServiceInfoWrapperImpl.java => ShadowAccessibilityServiceInfo.java} (85%) rename tests/robotests/src/com/android/settings/testutils/shadow/{ShadowPowerManagerWrapper.java => ShadowPowerManager.java} (89%) diff --git a/src/com/android/settings/connecteddevice/usb/UsbBackend.java b/src/com/android/settings/connecteddevice/usb/UsbBackend.java index cb305e39337..333449f9420 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbBackend.java +++ b/src/com/android/settings/connecteddevice/usb/UsbBackend.java @@ -25,7 +25,6 @@ import android.net.ConnectivityManager; import android.os.UserManager; import android.support.annotation.VisibleForTesting; -import com.android.settings.wrapper.UsbManagerWrapper; import com.android.settings.wrapper.UserManagerWrapper; /** @@ -44,7 +43,6 @@ public class UsbBackend { private final boolean mTetheringSupported; private UsbManager mUsbManager; - private UsbManagerWrapper mUsbManagerWrapper; @Nullable private UsbPort mPort; @@ -52,19 +50,13 @@ public class UsbBackend { private UsbPortStatus mPortStatus; public UsbBackend(Context context) { - this(context, new UserManagerWrapper(UserManager.get(context)), null); + this(context, new UserManagerWrapper(UserManager.get(context))); } @VisibleForTesting - public UsbBackend(Context context, UserManagerWrapper userManagerWrapper, - UsbManagerWrapper usbManagerWrapper) { + public UsbBackend(Context context, UserManagerWrapper userManagerWrapper) { mUsbManager = context.getSystemService(UsbManager.class); - mUsbManagerWrapper = usbManagerWrapper; - if (mUsbManagerWrapper == null) { - mUsbManagerWrapper = new UsbManagerWrapper(mUsbManager); - } - mFileTransferRestricted = userManagerWrapper.isUsbFileTransferRestricted(); mFileTransferRestrictedBySystem = userManagerWrapper.isUsbFileTransferRestrictedBySystem(); mTetheringRestricted = userManagerWrapper.isUsbTetheringRestricted(); @@ -79,7 +71,7 @@ public class UsbBackend { } public long getCurrentFunctions() { - return mUsbManagerWrapper.getCurrentFunctions(); + return mUsbManager.getCurrentFunctions(); } public void setCurrentFunctions(long functions) { diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java index fc08511b815..bbd6f8053fe 100644 --- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java +++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java @@ -31,7 +31,6 @@ import android.support.v7.preference.PreferenceScreen; import android.util.Log; import com.android.settings.core.PreferenceControllerMixin; -import com.android.settings.wrapper.PowerManagerWrapper; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -72,21 +71,15 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr }; public BrightnessLevelPreferenceController(Context context, Lifecycle lifecycle) { - this(context, lifecycle, new PowerManagerWrapper( - (PowerManager) context.getSystemService(Context.POWER_SERVICE))); - } - - @VisibleForTesting - public BrightnessLevelPreferenceController(Context context, Lifecycle lifecycle, - PowerManagerWrapper powerManagerWrapper) { super(context); if (lifecycle != null) { lifecycle.addObserver(this); } - mMinBrightness = powerManagerWrapper.getMinimumScreenBrightnessSetting(); - mMaxBrightness = powerManagerWrapper.getMaximumScreenBrightnessSetting(); - mMinVrBrightness = powerManagerWrapper.getMinimumScreenBrightnessForVrSetting(); - mMaxVrBrightness = powerManagerWrapper.getMaximumScreenBrightnessForVrSetting(); + PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); + mMinBrightness = powerManager.getMinimumScreenBrightnessSetting(); + mMaxBrightness = powerManager.getMaximumScreenBrightnessSetting(); + mMinVrBrightness = powerManager.getMinimumScreenBrightnessForVrSetting(); + mMaxVrBrightness = powerManager.getMaximumScreenBrightnessForVrSetting(); mContentResolver = mContext.getContentResolver(); } diff --git a/src/com/android/settings/print/PrintSettingPreferenceController.java b/src/com/android/settings/print/PrintSettingPreferenceController.java index a589770a0ea..14eb907a23f 100644 --- a/src/com/android/settings/print/PrintSettingPreferenceController.java +++ b/src/com/android/settings/print/PrintSettingPreferenceController.java @@ -29,7 +29,6 @@ import android.support.v7.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; -import com.android.settings.wrapper.PrintManagerWrapper; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; @@ -46,13 +45,15 @@ public class PrintSettingPreferenceController extends BasePreferenceController i private static final String KEY_PRINTING_SETTINGS = "connected_device_printing"; private final PackageManager mPackageManager; - private PrintManagerWrapper mPrintManager; + private final PrintManager mPrintManager; + private Preference mPreference; public PrintSettingPreferenceController(Context context) { super(context, KEY_PRINTING_SETTINGS); mPackageManager = context.getPackageManager(); - mPrintManager = new PrintManagerWrapper(context); + mPrintManager = ((PrintManager) context.getSystemService(Context.PRINT_SERVICE)) + .getGlobalPrintManagerForUser(context.getUserId()); } @Override @@ -69,7 +70,7 @@ public class PrintSettingPreferenceController extends BasePreferenceController i @Override public void onStart() { - mPrintManager.addPrintJobStateChanegListener(this); + mPrintManager.addPrintJobStateChangeListener(this); } @Override diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java index 3079f8d8576..76e4557935a 100644 --- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java +++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java @@ -28,14 +28,13 @@ import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.util.Log; - import android.widget.Toast; + import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.search.Indexable; -import com.android.settings.wrapper.WifiManagerWrapper; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.AccessPointPreference; import com.android.settingslib.wifi.WifiSavedConfigUtils; @@ -107,7 +106,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment }; private WifiDialog mDialog; - private WifiManagerWrapper mWifiManager; + private WifiManager mWifiManager; private AccessPoint mDlgAccessPoint; private Bundle mAccessPointSavedState; private AccessPoint mSelectedAccessPoint; @@ -139,7 +138,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - mWifiManager = new WifiManagerWrapper((WifiManager) getSystemService(Context.WIFI_SERVICE)); + mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); if (savedInstanceState != null) { if (savedInstanceState.containsKey(SAVE_DIALOG_ACCESS_POINT_STATE)) { @@ -154,7 +153,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment final Context context = getPrefContext(); final List accessPoints = - WifiSavedConfigUtils.getAllConfigs(context, mWifiManager.getWifiManager()); + WifiSavedConfigUtils.getAllConfigs(context, mWifiManager); Collections.sort(accessPoints, SAVED_NETWORK_COMPARATOR); cacheRemoveAllPrefs(preferenceScreen); diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 0f6a0bbb7ba..5f299221642 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -65,7 +65,6 @@ import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener; import com.android.settings.widget.SwitchBarController; import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.settings.wrapper.ConnectivityManagerWrapper; -import com.android.settings.wrapper.WifiManagerWrapper; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.AccessPoint.AccessPointListener; @@ -136,7 +135,7 @@ public class WifiSettings extends RestrictedSettingsFragment private boolean mIsRestricted; private WifiEnabler mWifiEnabler; - // An access point being editted is stored here. + // An access point being edited is stored here. private AccessPoint mSelectedAccessPoint; private WifiDialog mDialog; @@ -608,11 +607,10 @@ public class WifiSettings extends RestrictedSettingsFragment if (mSelectedAccessPoint != null) { mWifiToNfcDialog = new WriteWifiConfigToNfcDialog( getActivity(), - mSelectedAccessPoint.getSecurity(), - new WifiManagerWrapper(mWifiManager)); + mSelectedAccessPoint.getSecurity()); } else if (mWifiNfcDialogSavedState != null) { mWifiToNfcDialog = new WriteWifiConfigToNfcDialog(getActivity(), - mWifiNfcDialogSavedState, new WifiManagerWrapper(mWifiManager)); + mWifiNfcDialogSavedState); } return mWifiToNfcDialog; diff --git a/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java b/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java index dc98e21ce9e..3fe22c215f7 100644 --- a/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java +++ b/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java @@ -20,6 +20,7 @@ import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; +import android.net.wifi.WifiManager; import android.nfc.FormatException; import android.nfc.NdefMessage; import android.nfc.NdefRecord; @@ -27,7 +28,6 @@ import android.nfc.NfcAdapter; import android.nfc.Tag; import android.nfc.tech.Ndef; import android.os.Bundle; -import android.os.Handler; import android.os.PowerManager; import android.text.Editable; import android.text.InputType; @@ -42,7 +42,6 @@ import android.widget.ProgressBar; import android.widget.TextView; import com.android.settings.R; -import com.android.settings.wrapper.WifiManagerWrapper; import com.android.settingslib.wifi.AccessPoint; import java.io.IOException; @@ -67,29 +66,29 @@ class WriteWifiConfigToNfcDialog extends AlertDialog private TextView mLabelView; private CheckBox mPasswordCheckBox; private ProgressBar mProgressBar; - private WifiManagerWrapper mWifiManager; + private WifiManager mWifiManager; private String mWpsNfcConfigurationToken; private Context mContext; private int mSecurity; - WriteWifiConfigToNfcDialog(Context context, int security, WifiManagerWrapper wifiManager) { + WriteWifiConfigToNfcDialog(Context context, int security) { super(context); mContext = context; mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WriteWifiConfigToNfcDialog:wakeLock"); mSecurity = security; - mWifiManager = wifiManager; + mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); } - WriteWifiConfigToNfcDialog(Context context, Bundle savedState, WifiManagerWrapper wifiManager) { + WriteWifiConfigToNfcDialog(Context context, Bundle savedState) { super(context); mContext = context; mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WriteWifiConfigToNfcDialog:wakeLock"); mSecurity = savedState.getInt(SECURITY); - mWifiManager = wifiManager; + mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); } @Override diff --git a/src/com/android/settings/wrapper/AccessibilityServiceInfoWrapper.java b/src/com/android/settings/wrapper/AccessibilityServiceInfoWrapper.java deleted file mode 100644 index c920392306d..00000000000 --- a/src/com/android/settings/wrapper/AccessibilityServiceInfoWrapper.java +++ /dev/null @@ -1,47 +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.wrapper; - -import android.accessibilityservice.AccessibilityServiceInfo; -import android.content.ComponentName; - -/** - * This class replicates a subset of the - * {@link android.accessibilityservice.AccessibilityServiceInfo}. The class - * exists so that we can use a thin wrapper around it in production code and a mock in tests. - * We cannot directly mock or shadow it, because some of the methods we rely on are newer than - * the API version supported by Robolectric. - */ -public class AccessibilityServiceInfoWrapper { - - private final AccessibilityServiceInfo mServiceInfo; - - public AccessibilityServiceInfoWrapper(AccessibilityServiceInfo serviceInfo) { - mServiceInfo = serviceInfo; - } - - /** - * Returns the real {@code AccessibilityServiceInfo} object. - */ - public AccessibilityServiceInfo getAccessibilityServiceInfo() { - return mServiceInfo; - } - - public ComponentName getComponentName() { - return mServiceInfo.getComponentName(); - } -} diff --git a/src/com/android/settings/wrapper/PowerManagerWrapper.java b/src/com/android/settings/wrapper/PowerManagerWrapper.java deleted file mode 100644 index 6357a3ecd36..00000000000 --- a/src/com/android/settings/wrapper/PowerManagerWrapper.java +++ /dev/null @@ -1,49 +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.wrapper; - -import android.os.PowerManager; - -/** - * This class replicates a subset of the android.os.PowerManager. The class exists so that we can - * use a thin wrapper around the PowerManager in production code and a mock in tests. We cannot - * directly mock or shadow the PowerManager, because some of the methods we rely on are newer than - * the API version supported by Robolectric or are hidden. - */ -public class PowerManagerWrapper { - private final PowerManager mPowerManager; - - public PowerManagerWrapper(PowerManager powerManager) { - mPowerManager = powerManager; - } - - public int getMinimumScreenBrightnessSetting() { - return mPowerManager.getMinimumScreenBrightnessSetting(); - } - - public int getMaximumScreenBrightnessSetting() { - return mPowerManager.getMaximumScreenBrightnessSetting(); - } - - public int getMinimumScreenBrightnessForVrSetting() { - return mPowerManager.getMinimumScreenBrightnessForVrSetting(); - } - - public int getMaximumScreenBrightnessForVrSetting() { - return mPowerManager.getMaximumScreenBrightnessForVrSetting(); - } -} diff --git a/src/com/android/settings/wrapper/PrintManagerWrapper.java b/src/com/android/settings/wrapper/PrintManagerWrapper.java deleted file mode 100644 index d05eaedcae0..00000000000 --- a/src/com/android/settings/wrapper/PrintManagerWrapper.java +++ /dev/null @@ -1,54 +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.wrapper; - -import android.content.Context; -import android.print.PrintJob; -import android.print.PrintManager; -import android.printservice.PrintServiceInfo; - -import java.util.List; - -/** - * Wrapper class for {@link PrintManager}. This is necessary to increase testability in Robolectric. - */ -public class PrintManagerWrapper { - - private final PrintManager mPrintManager; - - public PrintManagerWrapper(Context context) { - mPrintManager = ((PrintManager) context.getSystemService(Context.PRINT_SERVICE)) - .getGlobalPrintManagerForUser(context.getUserId()); - } - - public List getPrintServices(int selectionFlags) { - return mPrintManager.getPrintServices(selectionFlags); - } - - public void addPrintJobStateChanegListener(PrintManager.PrintJobStateChangeListener listener) { - mPrintManager.addPrintJobStateChangeListener(listener); - } - - public void removePrintJobStateChangeListener( - PrintManager.PrintJobStateChangeListener listener) { - mPrintManager.removePrintJobStateChangeListener(listener); - } - - public List getPrintJobs() { - return mPrintManager.getPrintJobs(); - } -} diff --git a/src/com/android/settings/wrapper/UsbManagerWrapper.java b/src/com/android/settings/wrapper/UsbManagerWrapper.java deleted file mode 100644 index 018fdef6da8..00000000000 --- a/src/com/android/settings/wrapper/UsbManagerWrapper.java +++ /dev/null @@ -1,30 +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.wrapper; - -import android.hardware.usb.UsbManager; - -public class UsbManagerWrapper { - private UsbManager mUsbManager; - - public UsbManagerWrapper(UsbManager manager) { - mUsbManager = manager; - } - - public long getCurrentFunctions() { - return mUsbManager.getCurrentFunctions(); - } -} diff --git a/src/com/android/settings/wrapper/WifiManagerWrapper.java b/src/com/android/settings/wrapper/WifiManagerWrapper.java deleted file mode 100644 index c78899514ac..00000000000 --- a/src/com/android/settings/wrapper/WifiManagerWrapper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.android.settings.wrapper; - -import android.net.wifi.WifiConfiguration; -import android.net.wifi.WifiManager; - -/** - * Wrapper around {@link WifiManager} to facilitate unit testing. - * - * TODO: delete this class once robolectric supports Android O - */ -public class WifiManagerWrapper { - private final WifiManager mWifiManager; - - public WifiManagerWrapper(WifiManager wifiManager) { - mWifiManager = wifiManager; - } - - /** - * Gets the real WifiManager - * @return the real WifiManager - */ - public WifiManager getWifiManager() { - return mWifiManager; - } - - /** - * {@link WifiManager#getCurrentNetworkWpsNfcConfigurationToken} - */ - public String getCurrentNetworkWpsNfcConfigurationToken() { - return mWifiManager.getCurrentNetworkWpsNfcConfigurationToken(); - } - - /** - * {@link WifiManager#removePasspointConfiguration} - */ - public void removePasspointConfiguration(String fqdn) { - mWifiManager.removePasspointConfiguration(fqdn); - } - - /** - * {@link WifiManager#forget} - */ - public void forget(int netId, WifiManager.ActionListener listener) { - mWifiManager.forget(netId, listener); - } - - /** - * {@link WifiManager#save} - */ - public void save(WifiConfiguration config, WifiManager.ActionListener listener) { - mWifiManager.save(config, listener); - } -} diff --git a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java index ba9a33e1099..c08b841affe 100644 --- a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java +++ b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java @@ -6,7 +6,7 @@ import android.content.Context; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.XmlTestUtils; -import com.android.settings.testutils.shadow.ShadowPowerManagerWrapper; +import com.android.settings.testutils.shadow.ShadowPowerManager; import com.android.settingslib.core.AbstractPreferenceController; import org.junit.Test; @@ -21,7 +21,7 @@ import java.util.List; public class DisplaySettingsTest { @Test - @Config(shadows = ShadowPowerManagerWrapper.class) + @Config(shadows = ShadowPowerManager.class) public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() { final Context context = RuntimeEnvironment.application; final DisplaySettings fragment = new DisplaySettings(); diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java index 41767325b7c..0823fe0bebd 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java @@ -17,7 +17,6 @@ package com.android.settings.connecteddevice.usb; import static com.google.common.truth.Truth.assertThat; - import static org.mockito.Answers.RETURNS_DEEP_STUBS; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -30,8 +29,6 @@ import android.hardware.usb.UsbPortStatus; import android.net.ConnectivityManager; import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.wrapper.UsbManagerWrapper; import com.android.settings.wrapper.UserManagerWrapper; import org.junit.Before; @@ -50,8 +47,6 @@ public class UsbBackendTest { @Mock private UserManagerWrapper mUserManagerWrapper; @Mock - private UsbManagerWrapper mUsbManagerWrapper; - @Mock private ConnectivityManager mConnectivityManager; @Mock private UsbPort mUsbPort; @@ -62,26 +57,18 @@ public class UsbBackendTest { public void setUp() { MockitoAnnotations.initMocks(this); when(mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI)) - .thenReturn(true); - when((Object)mContext.getSystemService(UsbManager.class)).thenReturn(mUsbManager); + .thenReturn(true); + when((Object) mContext.getSystemService(UsbManager.class)).thenReturn(mUsbManager); when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)) .thenReturn(mConnectivityManager); - when(mUsbManager.getPorts()).thenReturn(new UsbPort[]{ mUsbPort }); + when(mUsbManager.getPorts()).thenReturn(new UsbPort[] {mUsbPort}); when(mUsbPortStatus.isConnected()).thenReturn(true); when(mUsbManager.getPortStatus(mUsbPort)).thenReturn(mUsbPortStatus); } - @Test - public void constructor_noUsbPort_shouldNotCrash() { - final UsbBackend usbBackend = - new UsbBackend(mContext, mUserManagerWrapper, mUsbManagerWrapper); - // Should not crash - } - @Test public void setDataRole_allRolesSupported_shouldSetDataRole() { - final UsbBackend usbBackend = - new UsbBackend(mContext, mUserManagerWrapper, mUsbManagerWrapper); + final UsbBackend usbBackend = new UsbBackend(mContext, mUserManagerWrapper); when(mUsbPortStatus .isRoleCombinationSupported(UsbPort.POWER_ROLE_SINK, UsbPort.DATA_ROLE_DEVICE)) @@ -104,8 +91,7 @@ public class UsbBackendTest { @Test public void setDataRole_notAllRolesSupported_shouldSetDataAndPowerRole() { - final UsbBackend usbBackend = - new UsbBackend(mContext, mUserManagerWrapper, mUsbManagerWrapper); + final UsbBackend usbBackend = new UsbBackend(mContext, mUserManagerWrapper); when(mUsbPortStatus .isRoleCombinationSupported(UsbPort.POWER_ROLE_SINK, UsbPort.DATA_ROLE_DEVICE)) @@ -123,8 +109,7 @@ public class UsbBackendTest { @Test public void setPowerRole_allRolesSupported_shouldSetPowerRole() { - final UsbBackend usbBackend = - new UsbBackend(mContext, mUserManagerWrapper, mUsbManagerWrapper); + final UsbBackend usbBackend = new UsbBackend(mContext, mUserManagerWrapper); when(mUsbPortStatus .isRoleCombinationSupported(UsbPort.POWER_ROLE_SINK, UsbPort.DATA_ROLE_DEVICE)) @@ -148,8 +133,7 @@ public class UsbBackendTest { @Test public void setPowerRole_notAllRolesSupported_shouldSetDataAndPowerRole() { - final UsbBackend usbBackend = - new UsbBackend(mContext, mUserManagerWrapper, mUsbManagerWrapper); + final UsbBackend usbBackend = new UsbBackend(mContext, mUserManagerWrapper); when(mUsbPortStatus .isRoleCombinationSupported(UsbPort.POWER_ROLE_SINK, UsbPort.DATA_ROLE_DEVICE)) @@ -170,8 +154,7 @@ public class UsbBackendTest { when(mUserManagerWrapper.isUsbFileTransferRestricted()).thenReturn(true); when(mUserManagerWrapper.isUsbFileTransferRestrictedBySystem()).thenReturn(true); - final UsbBackend usbBackend = - new UsbBackend(mContext, mUserManagerWrapper, mUsbManagerWrapper); + final UsbBackend usbBackend = new UsbBackend(mContext, mUserManagerWrapper); assertThat(usbBackend.areFunctionsSupported(UsbManager.FUNCTION_MTP)).isFalse(); } @@ -181,8 +164,7 @@ public class UsbBackendTest { when(mUserManagerWrapper.isUsbFileTransferRestricted()).thenReturn(false); when(mUserManagerWrapper.isUsbFileTransferRestrictedBySystem()).thenReturn(false); - final UsbBackend usbBackend = - new UsbBackend(mContext, mUserManagerWrapper, mUsbManagerWrapper); + final UsbBackend usbBackend = new UsbBackend(mContext, mUserManagerWrapper); assertThat(usbBackend.areFunctionsSupported(UsbManager.FUNCTION_MTP)).isTrue(); } diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java index a91d2d8afa1..adc3b66be06 100644 --- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java @@ -16,6 +16,7 @@ package com.android.settings.display; +import static android.content.Context.POWER_SERVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.doReturn; @@ -26,12 +27,12 @@ import static org.mockito.Mockito.when; import android.content.ContentResolver; import android.content.Context; +import android.os.PowerManager; import android.provider.Settings.System; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.wrapper.PowerManagerWrapper; import org.junit.Before; import org.junit.Test; @@ -40,13 +41,14 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.shadow.api.Shadow; +import org.robolectric.shadows.ShadowApplication; import org.robolectric.shadows.ShadowContentResolver; @RunWith(SettingsRobolectricTestRunner.class) public class BrightnessLevelPreferenceControllerTest { @Mock - private PowerManagerWrapper mPowerManager; + private PowerManager mPowerManager; @Mock private PreferenceScreen mScreen; @Mock @@ -67,8 +69,10 @@ public class BrightnessLevelPreferenceControllerTest { when(mPowerManager.getMaximumScreenBrightnessSetting()).thenReturn(100); when(mPowerManager.getMinimumScreenBrightnessForVrSetting()).thenReturn(0); when(mPowerManager.getMaximumScreenBrightnessForVrSetting()).thenReturn(100); + ShadowApplication.getInstance().setSystemService(POWER_SERVICE, + mPowerManager); when(mScreen.findPreference(anyString())).thenReturn(mPreference); - mController = spy(new BrightnessLevelPreferenceController(mContext, null, mPowerManager)); + mController = spy(new BrightnessLevelPreferenceController(mContext, null)); doReturn(false).when(mController).isInVrMode(); } @@ -80,23 +84,23 @@ public class BrightnessLevelPreferenceControllerTest { @Test public void onStart_shouldRegisterObserver() { BrightnessLevelPreferenceController controller = - new BrightnessLevelPreferenceController(mContext, null, mPowerManager); + new BrightnessLevelPreferenceController(mContext, null); ShadowContentResolver shadowContentResolver = Shadow.extract(mContentResolver); controller.onStart(); assertThat(shadowContentResolver.getContentObservers( - System.getUriFor(System.SCREEN_BRIGHTNESS))).isNotEmpty(); + System.getUriFor(System.SCREEN_BRIGHTNESS))).isNotEmpty(); assertThat(shadowContentResolver.getContentObservers( - System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isNotEmpty(); + System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isNotEmpty(); assertThat(shadowContentResolver.getContentObservers( - System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isNotEmpty(); + System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isNotEmpty(); } @Test public void onStop_shouldUnregisterObserver() { BrightnessLevelPreferenceController controller = - new BrightnessLevelPreferenceController(mContext, null, mPowerManager); + new BrightnessLevelPreferenceController(mContext, null); ShadowContentResolver shadowContentResolver = Shadow.extract(mContext.getContentResolver()); controller.displayPreference(mScreen); @@ -104,11 +108,11 @@ public class BrightnessLevelPreferenceControllerTest { controller.onStop(); assertThat(shadowContentResolver.getContentObservers( - System.getUriFor(System.SCREEN_BRIGHTNESS))).isEmpty(); + System.getUriFor(System.SCREEN_BRIGHTNESS))).isEmpty(); assertThat(shadowContentResolver.getContentObservers( - System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isEmpty(); + System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isEmpty(); assertThat(shadowContentResolver.getContentObservers( - System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isEmpty(); + System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isEmpty(); } @Test @@ -125,7 +129,7 @@ public class BrightnessLevelPreferenceControllerTest { public void updateState_autoBrightness_shouldSetSummaryToAutoBrightness() { doReturn(false).when(mController).isInVrMode(); System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE, - System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); + System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, 31); @@ -138,7 +142,7 @@ public class BrightnessLevelPreferenceControllerTest { public void updateState_manualBrightness_shouldSetSummaryToScreenBrightness() { doReturn(false).when(mController).isInVrMode(); System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE, - System.SCREEN_BRIGHTNESS_MODE_MANUAL); + System.SCREEN_BRIGHTNESS_MODE_MANUAL); System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, 45); diff --git a/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java index 3862532f39d..82bd4044423 100644 --- a/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java @@ -34,14 +34,12 @@ import android.printservice.PrintServiceInfo; import com.android.settings.R; import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.wrapper.PrintManagerWrapper; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Answers; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; @@ -55,12 +53,13 @@ import java.util.List; public class PrintSettingsPreferenceControllerTest { @Mock - private PrintManagerWrapper mPrintManager; + private PrintManager mPrintManager; @Mock private UserManager mUserManager; - private Context mContext; @Mock private RestrictedPreference mPreference; + + private Context mContext; private PrintSettingPreferenceController mController; private LifecycleOwner mLifecycleOwner; private Lifecycle mLifecycle; @@ -83,7 +82,7 @@ public class PrintSettingsPreferenceControllerTest { mLifecycle.handleLifecycleEvent(ON_START); mLifecycle.handleLifecycleEvent(ON_STOP); - verify(mPrintManager).addPrintJobStateChanegListener(mController); + verify(mPrintManager).addPrintJobStateChangeListener(mController); verify(mPrintManager).removePrintJobStateChangeListener(mController); } diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfoWrapperImpl.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfo.java similarity index 85% rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfoWrapperImpl.java rename to tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfo.java index dd4b2ee940e..551f263990c 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfoWrapperImpl.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfo.java @@ -16,18 +16,18 @@ package com.android.settings.testutils.shadow; +import android.accessibilityservice.AccessibilityServiceInfo; import android.content.ComponentName; -import com.android.settings.wrapper.AccessibilityServiceInfoWrapper; - import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; -@Implements(AccessibilityServiceInfoWrapper.class) -public class ShadowAccessibilityServiceInfoWrapperImpl { + +@Implements(AccessibilityServiceInfo.class) +public class ShadowAccessibilityServiceInfo { private static ComponentName sComponentName; public static void setComponentName(String componentName) { - sComponentName = ComponentName.unflattenFromString(componentName);; + sComponentName = ComponentName.unflattenFromString(componentName); } @Implementation diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManagerWrapper.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java similarity index 89% rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManagerWrapper.java rename to tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java index b1e62b068fd..9fcc599b1c9 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManagerWrapper.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java @@ -17,12 +17,13 @@ package com.android.settings.testutils.shadow; -import com.android.settings.wrapper.PowerManagerWrapper; +import android.os.PowerManager; + import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; -@Implements(PowerManagerWrapper.class) -public class ShadowPowerManagerWrapper { +@Implements(PowerManager.class) +public class ShadowPowerManager { @Implementation public int getMinimumScreenBrightnessSetting() { diff --git a/tests/robotests/src/com/android/settings/wifi/SavedAccessPointsWifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/SavedAccessPointsWifiSettingsTest.java index ca6364380e7..b4fc4cdde7c 100644 --- a/tests/robotests/src/com/android/settings/wifi/SavedAccessPointsWifiSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/SavedAccessPointsWifiSettingsTest.java @@ -23,11 +23,11 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.net.wifi.WifiConfiguration; +import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.ActionListener; import android.os.Handler; import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.wrapper.WifiManagerWrapper; import com.android.settingslib.wifi.AccessPoint; import org.junit.Before; @@ -40,12 +40,18 @@ import org.robolectric.util.ReflectionHelpers; @RunWith(SettingsRobolectricTestRunner.class) public class SavedAccessPointsWifiSettingsTest { - @Mock private WifiManagerWrapper mockWifiManager; - @Mock private WifiDialog mockWifiDialog; - @Mock private WifiConfigController mockConfigController; - @Mock private WifiConfiguration mockWifiConfiguration; - @Mock private AccessPoint mockAccessPoint; - @Mock private Handler mHandler; + @Mock + private WifiManager mockWifiManager; + @Mock + private WifiDialog mockWifiDialog; + @Mock + private WifiConfigController mockConfigController; + @Mock + private WifiConfiguration mockWifiConfiguration; + @Mock + private AccessPoint mockAccessPoint; + @Mock + private Handler mHandler; private SavedAccessPointsWifiSettings mSettings; @@ -97,6 +103,6 @@ public class SavedAccessPointsWifiSettingsTest { when(mockAccessPoint.getConfig()).thenReturn(mockWifiConfiguration); mSettings.onForget(mockWifiDialog); verify(mockWifiManager) - .forget(eq(mockWifiConfiguration.networkId), any(ActionListener.class)); + .forget(eq(mockWifiConfiguration.networkId), any(ActionListener.class)); } } diff --git a/tests/robotests/src/com/android/settings/wifi/WriteWifiConfigToNfcDialogTest.java b/tests/robotests/src/com/android/settings/wifi/WriteWifiConfigToNfcDialogTest.java index ce6bb71fab2..170cf53c1c3 100644 --- a/tests/robotests/src/com/android/settings/wifi/WriteWifiConfigToNfcDialogTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WriteWifiConfigToNfcDialogTest.java @@ -21,11 +21,11 @@ import static org.mockito.Mockito.when; import android.app.Activity; import android.content.Context; +import android.net.wifi.WifiManager; import android.view.inputmethod.InputMethodManager; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowNfcAdapter; -import com.android.settings.wrapper.WifiManagerWrapper; import org.junit.After; import org.junit.Before; @@ -42,9 +42,9 @@ import org.robolectric.util.ReflectionHelpers; public class WriteWifiConfigToNfcDialogTest { @Mock - Activity mActivity; + private Activity mActivity; @Mock - WifiManagerWrapper mWifiManager; + private WifiManager mWifiManager; private WriteWifiConfigToNfcDialog mWriteWifiConfigToNfcDialog; @@ -56,7 +56,8 @@ public class WriteWifiConfigToNfcDialogTest { .thenReturn(ReflectionHelpers.newInstance(InputMethodManager.class)); mWriteWifiConfigToNfcDialog = new WriteWifiConfigToNfcDialog(RuntimeEnvironment.application, - 0 /* security */, mWifiManager); + 0 /* security */); + ReflectionHelpers.setField(mWriteWifiConfigToNfcDialog, "mWifiManager", mWifiManager); mWriteWifiConfigToNfcDialog.setOwnerActivity(mActivity); mWriteWifiConfigToNfcDialog.onCreate(null /* savedInstanceState */); } From 1781cf2cefb726608c12b48a34a64a79a99b8dc0 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 30 Mar 2018 15:50:11 -0700 Subject: [PATCH 2/2] Remove wrapper class for NotificationGroup. It's no longer needed as Robolectric can natively support framework classes Bug: 76167422 Test: robotests Change-Id: If0ac597370240b8efaa8df8783a5c309a2322a3f --- .../BlockPreferenceController.java | 8 +-- .../ChannelGroupNotificationSettings.java | 6 +- .../HeaderPreferenceController.java | 30 ++++----- .../NotificationPreferenceController.java | 19 +++--- .../NotificationSettingsBase.java | 7 +- .../NotificationsOffPreferenceController.java | 3 +- .../NotificationChannelGroupWrapper.java | 64 ------------------- .../BlockPreferenceControllerTest.java | 6 +- ...letedChannelsPreferenceControllerTest.java | 5 +- .../DescriptionPreferenceControllerTest.java | 13 ++-- .../HeaderPreferenceControllerTest.java | 11 ++-- .../NotificationPreferenceControllerTest.java | 32 ++++------ ...ificationsOffPreferenceControllerTest.java | 27 ++++---- 13 files changed, 74 insertions(+), 157 deletions(-) delete mode 100644 src/com/android/settings/wrapper/NotificationChannelGroupWrapper.java diff --git a/src/com/android/settings/notification/BlockPreferenceController.java b/src/com/android/settings/notification/BlockPreferenceController.java index 8b270989a8a..9ea29feccca 100644 --- a/src/com/android/settings/notification/BlockPreferenceController.java +++ b/src/com/android/settings/notification/BlockPreferenceController.java @@ -56,7 +56,7 @@ public class BlockPreferenceController extends NotificationPreferenceController } if (mChannel != null) { return isChannelBlockable(); - } else if (mChannelGroup != null && mChannelGroup.getGroup() != null) { + } else if (mChannelGroup != null) { return isChannelGroupBlockable(); } else { return !mAppRow.systemApp || (mAppRow.systemApp && mAppRow.banned); @@ -80,7 +80,7 @@ public class BlockPreferenceController extends NotificationPreferenceController if (mChannel != null) { bar.setChecked(!mAppRow.banned && mChannel.getImportance() != NotificationManager.IMPORTANCE_NONE); - } else if (mChannelGroup != null && mChannelGroup.getGroup() != null) { + } else if (mChannelGroup != null) { bar.setChecked(!mAppRow.banned && !mChannelGroup.isBlocked()); } else { bar.setChecked(!mAppRow.banned); @@ -107,9 +107,9 @@ public class BlockPreferenceController extends NotificationPreferenceController mAppRow.banned = blocked; mBackend.setNotificationsEnabledForPackage(mAppRow.pkg, mAppRow.uid, !blocked); } - } else if (mChannelGroup != null && mChannelGroup.getGroup() != null) { + } else if (mChannelGroup != null) { mChannelGroup.setBlocked(blocked); - mBackend.updateChannelGroup(mAppRow.pkg, mAppRow.uid, mChannelGroup.getGroup()); + mBackend.updateChannelGroup(mAppRow.pkg, mAppRow.uid, mChannelGroup); } else if (mAppRow != null) { mAppRow.banned = blocked; mBackend.setNotificationsEnabledForPackage(mAppRow.pkg, mAppRow.uid, !blocked); diff --git a/src/com/android/settings/notification/ChannelGroupNotificationSettings.java b/src/com/android/settings/notification/ChannelGroupNotificationSettings.java index d641df7889e..f16031e16e7 100644 --- a/src/com/android/settings/notification/ChannelGroupNotificationSettings.java +++ b/src/com/android/settings/notification/ChannelGroupNotificationSettings.java @@ -40,7 +40,7 @@ public class ChannelGroupNotificationSettings extends NotificationSettingsBase { @Override public void onResume() { super.onResume(); - if (mAppRow == null || mChannelGroup == null || mChannelGroup.getGroup() == null) { + if (mAppRow == null || mChannelGroup == null) { Log.w(TAG, "Missing package or uid or packageinfo or group"); finish(); return; @@ -85,7 +85,7 @@ public class ChannelGroupNotificationSettings extends NotificationSettingsBase { getPreferenceScreen().removePreference(p); } } - if (mChannelGroup.getGroup().getChannels().isEmpty()) { + if (mChannelGroup.getChannels().isEmpty()) { Preference empty = new Preference(getPrefContext()); empty.setTitle(R.string.no_channels); empty.setEnabled(false); @@ -93,7 +93,7 @@ public class ChannelGroupNotificationSettings extends NotificationSettingsBase { mDynamicPreferences.add(empty); } else { - final List channels = mChannelGroup.getGroup().getChannels(); + final List channels = mChannelGroup.getChannels(); Collections.sort(channels, mChannelComparator); for (NotificationChannel channel : channels) { mDynamicPreferences.add(populateSingleChannelPrefs( diff --git a/src/com/android/settings/notification/HeaderPreferenceController.java b/src/com/android/settings/notification/HeaderPreferenceController.java index f30abf48ef0..ff687e8049f 100644 --- a/src/com/android/settings/notification/HeaderPreferenceController.java +++ b/src/com/android/settings/notification/HeaderPreferenceController.java @@ -73,27 +73,27 @@ public class HeaderPreferenceController extends NotificationPreferenceController CharSequence getLabel() { return mChannel != null ? mChannel.getName() - : mChannelGroup != null && mChannelGroup.getGroup() != null - ? mChannelGroup.getGroup().getName() + : mChannelGroup != null + ? mChannelGroup.getName() : mAppRow.label; } @Override public CharSequence getSummary() { if (mChannel != null) { - if (mChannelGroup != null && mChannelGroup.getGroup() != null - && !TextUtils.isEmpty(mChannelGroup.getGroup().getName())) { - final SpannableStringBuilder summary = new SpannableStringBuilder(); - BidiFormatter bidi = BidiFormatter.getInstance(); - summary.append(bidi.unicodeWrap(mAppRow.label.toString())); - summary.append(bidi.unicodeWrap(mContext.getText( - R.string.notification_header_divider_symbol_with_spaces))); - summary.append(bidi.unicodeWrap(mChannelGroup.getGroup().getName().toString())); - return summary.toString(); - } else { - return mAppRow.label.toString(); - } - } else if (mChannelGroup != null && mChannelGroup.getGroup() != null) { + if (mChannelGroup != null + && !TextUtils.isEmpty(mChannelGroup.getName())) { + final SpannableStringBuilder summary = new SpannableStringBuilder(); + BidiFormatter bidi = BidiFormatter.getInstance(); + summary.append(bidi.unicodeWrap(mAppRow.label.toString())); + summary.append(bidi.unicodeWrap(mContext.getText( + R.string.notification_header_divider_symbol_with_spaces))); + summary.append(bidi.unicodeWrap(mChannelGroup.getName().toString())); + return summary.toString(); + } else { + return mAppRow.label.toString(); + } + } else if (mChannelGroup != null) { return mAppRow.label.toString(); } else { return ""; diff --git a/src/com/android/settings/notification/NotificationPreferenceController.java b/src/com/android/settings/notification/NotificationPreferenceController.java index 797f30d3f7b..c0bb7050045 100644 --- a/src/com/android/settings/notification/NotificationPreferenceController.java +++ b/src/com/android/settings/notification/NotificationPreferenceController.java @@ -25,13 +25,11 @@ import android.app.NotificationManager; import android.content.Context; import android.content.pm.PackageManager; import android.os.UserManager; -import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroup; import android.support.v7.preference.PreferenceScreen; import android.util.Log; -import com.android.settings.wrapper.NotificationChannelGroupWrapper; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.core.AbstractPreferenceController; @@ -41,11 +39,12 @@ import java.util.Objects; * Parent class for preferences appearing on notification setting pages at the app, * notification channel group, or notification channel level. */ -public abstract class NotificationPreferenceController extends AbstractPreferenceController -{ +public abstract class NotificationPreferenceController extends AbstractPreferenceController { private static final String TAG = "ChannelPrefContr"; - @Nullable protected NotificationChannel mChannel; - @Nullable protected NotificationChannelGroupWrapper mChannelGroup; + @Nullable + protected NotificationChannel mChannel; + @Nullable + protected NotificationChannelGroup mChannelGroup; protected RestrictedLockUtils.EnforcedAdmin mAdmin; protected NotificationBackend.AppRow mAppRow; protected final NotificationManager mNm; @@ -78,7 +77,7 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc if (mChannel != null) { return mChannel.getImportance() != IMPORTANCE_NONE; } - if (mChannelGroup != null && mChannelGroup.getGroup() == null) { + if (mChannelGroup != null) { return !mChannelGroup.isBlocked(); } return true; @@ -125,7 +124,7 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc } protected void onResume(NotificationBackend.AppRow appRow, - @Nullable NotificationChannel channel, @Nullable NotificationChannelGroupWrapper group, + @Nullable NotificationChannel channel, @Nullable NotificationChannelGroup group, RestrictedLockUtils.EnforcedAdmin admin) { mAppRow = appRow; mChannel = channel; @@ -172,7 +171,7 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc } protected boolean isChannelGroupBlockable() { - if (mChannelGroup != null && mChannelGroup.getGroup() != null && mAppRow != null) { + if (mChannelGroup != null && mAppRow != null) { if (!mAppRow.systemApp) { return true; } @@ -183,6 +182,6 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc } protected boolean hasValidGroup() { - return mChannelGroup != null && mChannelGroup.getGroup() != null; + return mChannelGroup != null; } } diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java index 7583ec94070..6436de63c25 100644 --- a/src/com/android/settings/notification/NotificationSettingsBase.java +++ b/src/com/android/settings/notification/NotificationSettingsBase.java @@ -49,7 +49,6 @@ import com.android.settings.applications.AppInfoBase; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.widget.MasterCheckBoxPreference; -import com.android.settings.wrapper.NotificationChannelGroupWrapper; import com.android.settingslib.RestrictedLockUtils; import java.util.ArrayList; @@ -70,7 +69,7 @@ abstract public class NotificationSettingsBase extends DashboardFragment { protected String mPkg; protected PackageInfo mPkgInfo; protected EnforcedAdmin mSuspendedAppsAdmin; - protected NotificationChannelGroupWrapper mChannelGroup; + protected NotificationChannelGroup mChannelGroup; protected NotificationChannel mChannel; protected NotificationBackend.AppRow mAppRow; @@ -168,7 +167,7 @@ abstract public class NotificationSettingsBase extends DashboardFragment { if (mChannel != null && !TextUtils.isEmpty(mChannel.getGroup())) { group = mBackend.getGroup(mPkg, mUid, mChannel.getGroup()); if (group != null) { - mChannelGroup = new NotificationChannelGroupWrapper(group); + mChannelGroup = group; } } } @@ -209,7 +208,7 @@ abstract public class NotificationSettingsBase extends DashboardFragment { } if (mChannelGroup != null) { mAppRow.settingsIntent.putExtra( - Notification.EXTRA_CHANNEL_GROUP_ID, mChannelGroup.getGroup().getId()); + Notification.EXTRA_CHANNEL_GROUP_ID, mChannelGroup.getId()); } } } diff --git a/src/com/android/settings/notification/NotificationsOffPreferenceController.java b/src/com/android/settings/notification/NotificationsOffPreferenceController.java index ba304de3665..fad0e27bb4e 100644 --- a/src/com/android/settings/notification/NotificationsOffPreferenceController.java +++ b/src/com/android/settings/notification/NotificationsOffPreferenceController.java @@ -21,7 +21,6 @@ import android.support.v7.preference.Preference; import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; -import com.android.settingslib.widget.FooterPreference; public class NotificationsOffPreferenceController extends NotificationPreferenceController implements PreferenceControllerMixin { @@ -51,7 +50,7 @@ public class NotificationsOffPreferenceController extends NotificationPreference if (mAppRow != null) { if (mChannel != null) { preference.setTitle(R.string.channel_notifications_off_desc); - } else if (mChannelGroup != null && mChannelGroup.getGroup() == null) { + } else if (mChannelGroup != null) { preference.setTitle(R.string.channel_group_notifications_off_desc); } else { preference.setTitle(R.string.app_notifications_off_desc); diff --git a/src/com/android/settings/wrapper/NotificationChannelGroupWrapper.java b/src/com/android/settings/wrapper/NotificationChannelGroupWrapper.java deleted file mode 100644 index dbfff1a6c4b..00000000000 --- a/src/com/android/settings/wrapper/NotificationChannelGroupWrapper.java +++ /dev/null @@ -1,64 +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.wrapper; - -import android.app.NotificationChannelGroup; - -/** - * Wrapper for {@link NotificationChannelGroup} until roboletric supports O MR1. - */ -public class NotificationChannelGroupWrapper { - - private final NotificationChannelGroup mGroup; - - public NotificationChannelGroupWrapper(NotificationChannelGroup group) { - mGroup = group; - } - - /** - * Get the real group object so we can call APIs directly on it. - */ - public NotificationChannelGroup getGroup() { - return mGroup; - } - - public String getDescription() { - if (mGroup != null) { - return mGroup.getDescription(); - } - return null; - } - - public void setDescription(String desc) { - if (mGroup != null) { - mGroup.setDescription(desc); - } - } - - public boolean isBlocked() { - if (mGroup != null) { - return mGroup.isBlocked(); - } - return true; - } - - public void setBlocked(boolean blocked) { - if (mGroup != null) { - mGroup.setBlocked(blocked); - } - } -} \ No newline at end of file diff --git a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java index cd3fe287be7..fbc9689f620 100644 --- a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java @@ -46,7 +46,6 @@ import com.android.settings.R; import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.widget.SwitchBar; -import com.android.settings.wrapper.NotificationChannelGroupWrapper; import org.junit.Before; import org.junit.Test; @@ -113,7 +112,7 @@ public class BlockPreferenceControllerTest { public void testIsAvailable_notIfGroupNotBlockable() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.systemApp = true; - mController.onResume(appRow, null, mock(NotificationChannelGroupWrapper.class), null); + mController.onResume(appRow, null, mock(NotificationChannelGroup.class), null); assertFalse(mController.isAvailable()); } @@ -166,8 +165,7 @@ public class BlockPreferenceControllerTest { @Test public void testUpdateState_group() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); - when(group.getGroup()).thenReturn(mock(NotificationChannelGroup.class)); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.isBlocked()).thenReturn(true); mController.onResume(appRow, null, group, null); mController.updateState(mPreference); diff --git a/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java index 5c55c52c32b..eb01cbbdb10 100644 --- a/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java @@ -26,13 +26,12 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.NotificationChannel; +import android.app.NotificationChannelGroup; import android.app.NotificationManager; import android.content.Context; import android.os.UserManager; import android.support.v7.preference.Preference; -import com.android.settings.wrapper.NotificationChannelGroupWrapper; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -82,7 +81,7 @@ public class DeletedChannelsPreferenceControllerTest { @Test public void isAvailable_groupScreen_never() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - mController.onResume(appRow, null, mock(NotificationChannelGroupWrapper.class), null); + mController.onResume(appRow, null, mock(NotificationChannelGroup.class), null); assertFalse(mController.isAvailable()); } diff --git a/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java index a1b2837f9a8..07b17bfa5e7 100644 --- a/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java @@ -33,7 +33,6 @@ import android.os.UserManager; import android.support.v7.preference.Preference; import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.wrapper.NotificationChannelGroupWrapper; import org.junit.Before; import org.junit.Test; @@ -79,8 +78,7 @@ public class DescriptionPreferenceControllerTest { @Test public void testIsAvailable_notIfChannelGroupBlocked() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); - when(group.isBlocked()).thenReturn(true); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); mController.onResume(appRow, null, group, null); assertFalse(mController.isAvailable()); } @@ -106,8 +104,7 @@ public class DescriptionPreferenceControllerTest { @Test public void testIsAvailable_notIfNoChannelGroupDesc() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); - when(group.getGroup()).thenReturn(mock(NotificationChannelGroup.class)); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); mController.onResume(appRow, null, group, null); assertFalse(mController.isAvailable()); } @@ -125,8 +122,7 @@ public class DescriptionPreferenceControllerTest { @Test public void testIsAvailable_channelGroup() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); - when(group.getGroup()).thenReturn(mock(NotificationChannelGroup.class)); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.getDescription()).thenReturn("something"); when(group.isBlocked()).thenReturn(false); mController.onResume(appRow, null, group, null); @@ -152,8 +148,7 @@ public class DescriptionPreferenceControllerTest { @Test public void testUpdateState_channelGroup() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); - when(group.getGroup()).thenReturn(mock(NotificationChannelGroup.class)); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.getDescription()).thenReturn("something"); mController.onResume(appRow, null, group, null); diff --git a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java index 7e34f89c173..29773d2cc1a 100644 --- a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java @@ -36,7 +36,6 @@ import android.view.View; import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.wrapper.NotificationChannelGroupWrapper; import org.junit.Before; import org.junit.Test; @@ -104,12 +103,11 @@ public class HeaderPreferenceControllerTest { assertEquals(appRow.label, mController.getLabel()); NotificationChannelGroup group = new NotificationChannelGroup("id", "name"); - NotificationChannelGroupWrapper gWrapper = new NotificationChannelGroupWrapper(group); - mController.onResume(appRow, null, gWrapper, null); + mController.onResume(appRow, null, group, null); assertEquals(group.getName(), mController.getLabel()); NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE); - mController.onResume(appRow, channel, gWrapper, null); + mController.onResume(appRow, channel, group, null); assertEquals(channel.getName(), mController.getLabel()); } @@ -121,12 +119,11 @@ public class HeaderPreferenceControllerTest { assertEquals("", mController.getSummary()); NotificationChannelGroup group = new NotificationChannelGroup("id", "name"); - NotificationChannelGroupWrapper gWrapper = new NotificationChannelGroupWrapper(group); - mController.onResume(appRow, null, gWrapper, null); + mController.onResume(appRow, null, group, null); assertEquals(appRow.label, mController.getSummary()); NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE); - mController.onResume(appRow, channel, gWrapper, null); + mController.onResume(appRow, channel, group, null); assertTrue(mController.getSummary().toString().contains(group.getName())); assertTrue(mController.getSummary().toString().contains(appRow.label)); diff --git a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java index 4b6c76ec403..3ead72a2f31 100644 --- a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java @@ -40,7 +40,6 @@ import android.os.UserManager; import android.support.v7.preference.Preference; import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.wrapper.NotificationChannelGroupWrapper; import com.android.settingslib.RestrictedLockUtils; import org.junit.Before; @@ -76,7 +75,7 @@ public class NotificationPreferenceControllerTest { } @Test - public void noCrashIfNoOnResume() throws Exception { + public void noCrashIfNoOnResume() { mController.isAvailable(); mController.updateState(mock(Preference.class)); assertFalse(mController.checkCanBeVisible(IMPORTANCE_UNSPECIFIED)); @@ -87,22 +86,22 @@ public class NotificationPreferenceControllerTest { } @Test - public void isAvailable_notIfNull() throws Exception { + public void isAvailable_notIfNull() { mController.onResume(null, null, null, null); assertFalse(mController.isAvailable()); } @Test - public void isAvailable_notIfAppBlocked() throws Exception { + public void isAvailable_notIfAppBlocked() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.banned = true; mController.onResume(appRow, mock(NotificationChannel.class), - mock(NotificationChannelGroupWrapper.class), null); + mock(NotificationChannelGroup.class), null); assertFalse(mController.isAvailable()); } @Test - public void isAvailable_notIfChannelBlocked() throws Exception { + public void isAvailable_notIfChannelBlocked() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); NotificationChannel channel = mock(NotificationChannel.class); when(channel.getImportance()).thenReturn(IMPORTANCE_NONE); @@ -112,10 +111,10 @@ public class NotificationPreferenceControllerTest { } @Test - public void isAvailable_notIfChannelGroupBlocked() throws Exception { + public void isAvailable_notIfChannelGroupBlocked() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); NotificationChannel channel = mock(NotificationChannel.class); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); mController.onResume(appRow, channel, group, null); when(group.isBlocked()).thenReturn(true); @@ -123,11 +122,11 @@ public class NotificationPreferenceControllerTest { } @Test - public void isAvailable() throws Exception { + public void isAvailable() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); NotificationChannel channel = mock(NotificationChannel.class); when(channel.getImportance()).thenReturn(IMPORTANCE_DEFAULT); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.isBlocked()).thenReturn(false); mController.onResume(appRow, channel, group, null); @@ -135,10 +134,10 @@ public class NotificationPreferenceControllerTest { } @Test - public void testOnResume() throws Exception { + public void testOnResume() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); NotificationChannel channel = mock(NotificationChannel.class); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); RestrictedLockUtils.EnforcedAdmin admin = mock(RestrictedLockUtils.EnforcedAdmin.class); mController.onResume(appRow, channel, group, admin); @@ -266,8 +265,7 @@ public class NotificationPreferenceControllerTest { public void testIsChannelGroupBlockable_nonSystemBlockable() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.systemApp = false; - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); - when(group.getGroup()).thenReturn(mock(NotificationChannelGroup.class)); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.isBlocked()).thenReturn(false); mController.onResume(appRow, null, group, null); @@ -278,8 +276,7 @@ public class NotificationPreferenceControllerTest { public void testIsChannelGroupBlockable_SystemNotBlockable() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.systemApp = true; - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); - when(group.getGroup()).thenReturn(mock(NotificationChannelGroup.class)); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.isBlocked()).thenReturn(false); mController.onResume(appRow, null, group, null); @@ -290,8 +287,7 @@ public class NotificationPreferenceControllerTest { public void testIsChannelGroupBlockable_canUndoSystemBlock() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.systemApp = true; - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); - when(group.getGroup()).thenReturn(mock(NotificationChannelGroup.class)); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.isBlocked()).thenReturn(true); mController.onResume(appRow, null, group, null); diff --git a/tests/robotests/src/com/android/settings/notification/NotificationsOffPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationsOffPreferenceControllerTest.java index dcf3b7b3a2d..741362eeee1 100644 --- a/tests/robotests/src/com/android/settings/notification/NotificationsOffPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/NotificationsOffPreferenceControllerTest.java @@ -17,20 +17,19 @@ package com.android.settings.notification; import static android.app.NotificationManager.IMPORTANCE_NONE; -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.app.NotificationChannel; +import android.app.NotificationChannelGroup; import android.app.NotificationManager; import android.content.Context; import android.os.UserManager; import android.support.v7.preference.Preference; import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.wrapper.NotificationChannelGroupWrapper; import org.junit.Before; import org.junit.Test; @@ -70,16 +69,16 @@ public class NotificationsOffPreferenceControllerTest { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.banned = true; mController.onResume(appRow, null, null, null); - assertTrue(mController.isAvailable()); + assertThat(mController.isAvailable()).isTrue(); } @Test public void testIsAvailable_yesIfChannelGroupBlocked() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.isBlocked()).thenReturn(true); mController.onResume(appRow, null, group, null); - assertTrue(mController.isAvailable()); + assertThat(mController.isAvailable()).isTrue(); } @Test @@ -88,7 +87,7 @@ public class NotificationsOffPreferenceControllerTest { NotificationChannel channel = mock(NotificationChannel.class); when(channel.getImportance()).thenReturn(IMPORTANCE_NONE); mController.onResume(appRow, channel, null, null); - assertTrue(mController.isAvailable()); + assertThat(mController.isAvailable()).isTrue(); } @Test @@ -101,22 +100,22 @@ public class NotificationsOffPreferenceControllerTest { Preference pref = new Preference(RuntimeEnvironment.application); mController.updateState(pref); - assertTrue(pref.getTitle().toString().contains("category")); - assertFalse(pref.isSelectable()); + assertThat(pref.getTitle().toString()).contains("category"); + assertThat(pref.isSelectable()).isFalse(); } @Test public void testUpdateState_channelGroup() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); - NotificationChannelGroupWrapper group = mock(NotificationChannelGroupWrapper.class); + NotificationChannelGroup group = mock(NotificationChannelGroup.class); when(group.isBlocked()).thenReturn(true); mController.onResume(appRow, null, group, null); Preference pref = new Preference(RuntimeEnvironment.application); mController.updateState(pref); - assertTrue(pref.getTitle().toString().contains("group")); - assertFalse(pref.isSelectable()); + assertThat(pref.getTitle().toString()).contains("group"); + assertThat(pref.isSelectable()).isFalse(); } @Test @@ -128,7 +127,7 @@ public class NotificationsOffPreferenceControllerTest { Preference pref = new Preference(RuntimeEnvironment.application); mController.updateState(pref); - assertTrue(pref.getTitle().toString().contains("app")); - assertFalse(pref.isSelectable()); + assertThat(pref.getTitle().toString()).contains("app"); + assertThat(pref.isSelectable()).isFalse(); } }