Merge "[Settings] BT and WiFi reset menu might covers VPN"

This commit is contained in:
Bonian Chen
2022-12-08 00:50:08 +00:00
committed by Android (Google) Code Review
2 changed files with 81 additions and 11 deletions

View File

@@ -17,15 +17,24 @@
package com.android.settings.network;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.os.UserManager;
import android.telephony.TelephonyManager;
import com.android.settings.R;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@@ -36,23 +45,69 @@ public class BluetoothWiFiResetPreferenceControllerTest {
private static final String PREFERENCE_KEY = "network_reset_bluetooth_wifi_pref";
@Mock
private UserManager mUserManager;
@Mock
private Resources mResources;
@Mock
private ConnectivityManager mConnectivityManager;
@Mock
private TelephonyManager mTelephonyManager;
private Context mContext;
private BluetoothWiFiResetPreferenceController mTarget;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
when(mContext.getResources()).thenReturn(mResources);
mTarget = spy(new BluetoothWiFiResetPreferenceController(mContext, PREFERENCE_KEY));
mockService(Context.CONNECTIVITY_SERVICE, ConnectivityManager.class,
mConnectivityManager);
mockService(Context.TELEPHONY_SERVICE, TelephonyManager.class, mTelephonyManager);
}
@Test
public void getAvailabilityStatus_returnAvailable_asOwnerUser() {
mockService(Context.USER_SERVICE, UserManager.class, mUserManager);
doReturn(true).when(mUserManager).isAdminUser();
BluetoothWiFiResetPreferenceController target =
new BluetoothWiFiResetPreferenceController(mContext, PREFERENCE_KEY);
assertThat(target.getAvailabilityStatus()).isEqualTo(
BluetoothWiFiResetPreferenceController.AVAILABLE);
}
@Test
public void resetOperation_notResetConnectivity_onDeviceWithSimVisible() {
mockService(Context.CONNECTIVITY_SERVICE, ConnectivityManager.class,
mConnectivityManager);
when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
BluetoothWiFiResetPreferenceController target =
new BluetoothWiFiResetPreferenceController(mContext, PREFERENCE_KEY);
try {
target.resetOperation().run();
} catch (Exception exception) {}
verify(mConnectivityManager, never()).factoryReset();
}
@Test
public void endOfReset_toastMessage_whenSuccess() {
mTarget.endOfReset(null);
String testText = "reset_bluetooth_wifi_complete_toast";
when(mResources.getString(R.string.reset_bluetooth_wifi_complete_toast)).thenReturn(testText);
BluetoothWiFiResetPreferenceController target =
new BluetoothWiFiResetPreferenceController(mContext, PREFERENCE_KEY);
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
mContext.getString(R.string.reset_bluetooth_wifi_complete_toast));
target.endOfReset(null);
assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(testText);
}
private <T> void mockService(String serviceName, Class<T> serviceClass, T service) {
when(mContext.getSystemServiceName(serviceClass)).thenReturn(serviceName);
when(mContext.getSystemService(serviceName)).thenReturn(service);
}
}