Merge changes Ibd2f4111,Ia6cc60bc into rvc-dev
* changes: Fix crash in AllInOneTetherSettings when user is not admin Refactor new tether settings to remove SharedPreferences
This commit is contained in:
@@ -26,7 +26,6 @@ import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothPan;
|
||||
import android.bluetooth.BluetoothProfile;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import com.android.settings.widget.MasterSwitchPreference;
|
||||
|
||||
@@ -49,8 +48,6 @@ public class AllInOneTetherPreferenceControllerTest {
|
||||
private BluetoothAdapter mBluetoothAdapter;
|
||||
@Mock
|
||||
private MasterSwitchPreference mPreference;
|
||||
@Mock
|
||||
private SharedPreferences mSharedPreferences;
|
||||
|
||||
private AllInOneTetherPreferenceController mController;
|
||||
|
||||
@@ -61,8 +58,6 @@ public class AllInOneTetherPreferenceControllerTest {
|
||||
ReflectionHelpers.setField(mController, "mContext", mContext);
|
||||
ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter);
|
||||
ReflectionHelpers.setField(mController, "mPreference", mPreference);
|
||||
ReflectionHelpers
|
||||
.setField(mController, "mTetherEnablerSharedPreferences", mSharedPreferences);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -27,8 +27,8 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.TetheringManager;
|
||||
|
||||
import androidx.preference.SwitchPreference;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
@@ -47,7 +47,7 @@ public class BluetoothTetherPreferenceControllerTest {
|
||||
@Mock
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
@Mock
|
||||
private SharedPreferences mSharedPreferences;
|
||||
private TetherEnabler mTetherEnabler;
|
||||
|
||||
private SwitchPreference mSwitchPreference;
|
||||
private BluetoothTetherPreferenceController mController;
|
||||
@@ -61,10 +61,9 @@ public class BluetoothTetherPreferenceControllerTest {
|
||||
mSwitchPreference = spy(SwitchPreference.class);
|
||||
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
|
||||
mConnectivityManager);
|
||||
when(mContext.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE))
|
||||
.thenReturn(mSharedPreferences);
|
||||
when(mConnectivityManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""});
|
||||
mController = new BluetoothTetherPreferenceController(mContext, BLUETOOTH_TETHER_KEY);
|
||||
mController.setTetherEnabler(mTetherEnabler);
|
||||
ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference);
|
||||
}
|
||||
|
||||
@@ -77,6 +76,18 @@ public class BluetoothTetherPreferenceControllerTest {
|
||||
any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_shouldAddListenerOnResume() {
|
||||
mController.onResume();
|
||||
verify(mTetherEnabler).addListener(mController);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_shouldRemoveListenrOnPause() {
|
||||
mController.onPause();
|
||||
verify(mTetherEnabler).removeListener(mController);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_shouldUnregisterReceiverOnStop() {
|
||||
mController.onStart();
|
||||
@@ -96,18 +107,26 @@ public class BluetoothTetherPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void switch_shouldCheckedWhenSharedPreferenceIsTrue() {
|
||||
when(mSharedPreferences.getBoolean(BLUETOOTH_TETHER_KEY, false)).thenReturn(true);
|
||||
mController.onSharedPreferenceChanged(mSharedPreferences, BLUETOOTH_TETHER_KEY);
|
||||
|
||||
verify(mSwitchPreference).setChecked(true);
|
||||
public void setChecked_shouldStartBluetoothTethering() {
|
||||
mController.setChecked(true);
|
||||
verify(mTetherEnabler).startTethering(TetheringManager.TETHERING_BLUETOOTH);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void switch_shouldUnCheckedWhenSharedPreferenceIsFalse() {
|
||||
when(mSharedPreferences.getBoolean(BLUETOOTH_TETHER_KEY, false)).thenReturn(false);
|
||||
mController.onSharedPreferenceChanged(mSharedPreferences, BLUETOOTH_TETHER_KEY);
|
||||
public void setUnchecked_shouldStopBluetoothTethering() {
|
||||
mController.setChecked(false);
|
||||
verify(mTetherEnabler).stopTethering(TetheringManager.TETHERING_BLUETOOTH);
|
||||
}
|
||||
|
||||
verify(mSwitchPreference).setChecked(false);
|
||||
@Test
|
||||
public void switch_shouldCheckedWhenBluetoothTethering() {
|
||||
mController.onTetherStateUpdated(TetherEnabler.TETHERING_BLUETOOTH_ON);
|
||||
assertThat(mController.isChecked()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void switch_shouldUnCheckedWhenBluetoothNotTethering() {
|
||||
mController.onTetherStateUpdated(TetherEnabler.TETHERING_OFF);
|
||||
assertThat(mController.isChecked()).isFalse();
|
||||
}
|
||||
}
|
||||
|
@@ -32,13 +32,14 @@ import static org.mockito.Mockito.when;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothPan;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkPolicyManager;
|
||||
import android.net.TetheringManager;
|
||||
import android.net.wifi.WifiManager;
|
||||
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settings.network.TetherEnabler.OnTetherStateUpdateListener;
|
||||
import com.android.settings.widget.SwitchBar;
|
||||
import com.android.settings.widget.SwitchBarController;
|
||||
import com.android.settings.widget.SwitchWidgetController;
|
||||
@@ -51,6 +52,8 @@ import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@@ -64,7 +67,7 @@ public class TetherEnablerTest {
|
||||
@Mock
|
||||
private BluetoothPan mBluetoothPan;
|
||||
@Mock
|
||||
private SharedPreferences mSharedPreferences;
|
||||
private BluetoothAdapter mBluetoothAdapter;
|
||||
|
||||
private SwitchBar mSwitchBar;
|
||||
private TetherEnabler mEnabler;
|
||||
@@ -88,22 +91,8 @@ public class TetherEnablerTest {
|
||||
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]);
|
||||
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
|
||||
panReference.set(mBluetoothPan);
|
||||
when(context.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE))
|
||||
.thenReturn(mSharedPreferences);
|
||||
SharedPreferences.Editor editor = mock(SharedPreferences.Editor.class);
|
||||
when(mSharedPreferences.edit()).thenReturn(editor);
|
||||
mEnabler = spy(new TetherEnabler(context, mSwitchWidgetController, panReference));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_onPause_unRegisterSharedPreferenceListener() {
|
||||
mEnabler.onResume();
|
||||
verify(mSharedPreferences).registerOnSharedPreferenceChangeListener(
|
||||
eq(mEnabler));
|
||||
|
||||
mEnabler.onPause();
|
||||
verify(mSharedPreferences).unregisterOnSharedPreferenceChangeListener(
|
||||
eq(mEnabler));
|
||||
ReflectionHelpers.setField(mEnabler, "mBluetoothAdapter", mBluetoothAdapter);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -115,11 +104,20 @@ public class TetherEnablerTest {
|
||||
assertThat(mSwitchBar.isChecked()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_onStop_resetBluetoothTetheringStoppedByUser() {
|
||||
mEnabler.onStart();
|
||||
mEnabler.mBluetoothTetheringStoppedByUser = true;
|
||||
|
||||
mEnabler.onStop();
|
||||
assertThat(mEnabler.mBluetoothTetheringStoppedByUser).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void startTether_fail_resetSwitchBar() {
|
||||
when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false);
|
||||
mEnabler.onStart();
|
||||
mEnabler.startTether();
|
||||
mEnabler.startTethering(TetheringManager.TETHERING_WIFI);
|
||||
|
||||
when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]);
|
||||
mEnabler.mOnStartTetheringCallback.onTetheringFailed();
|
||||
@@ -145,8 +143,6 @@ public class TetherEnablerTest {
|
||||
|
||||
@Test
|
||||
public void onSwitchToggled_onlyStartsWifiTetherWhenNeeded() {
|
||||
when(mSharedPreferences.getBoolean(TetherEnabler.KEY_ENABLE_WIFI_TETHERING, true))
|
||||
.thenReturn(true);
|
||||
when(mWifiManager.isWifiApEnabled()).thenReturn(true);
|
||||
mEnabler.onSwitchToggled(true);
|
||||
verify(mConnectivityManager, never()).startTethering(anyInt(), anyBoolean(), any(), any());
|
||||
@@ -157,36 +153,28 @@ public class TetherEnablerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onSwitchToggled_shouldStartUSBTetherWhenSelected() {
|
||||
SharedPreferences preference = mock(SharedPreferences.class);
|
||||
ReflectionHelpers.setField(mEnabler, "mSharedPreferences", preference);
|
||||
when(preference.getBoolean(TetherEnabler.KEY_ENABLE_WIFI_TETHERING, true))
|
||||
.thenReturn(false);
|
||||
when(preference.getBoolean(TetherEnabler.USB_TETHER_KEY, false)).thenReturn(true);
|
||||
when(preference.getBoolean(TetherEnabler.BLUETOOTH_TETHER_KEY, true)).thenReturn(false);
|
||||
public void startTethering_startsBluetoothTetherWhenOff() {
|
||||
when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_OFF);
|
||||
|
||||
mEnabler.startTether();
|
||||
mEnabler.startTethering(ConnectivityManager.TETHERING_BLUETOOTH);
|
||||
verify(mBluetoothAdapter).enable();
|
||||
|
||||
when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_ON);
|
||||
mEnabler.startTethering(ConnectivityManager.TETHERING_BLUETOOTH);
|
||||
verify(mConnectivityManager).startTethering(
|
||||
eq(ConnectivityManager.TETHERING_USB), anyBoolean(), any(), any());
|
||||
verify(mConnectivityManager, never())
|
||||
.startTethering(eq(ConnectivityManager.TETHERING_WIFI), anyBoolean(), any(), any());
|
||||
verify(mConnectivityManager, never()).startTethering(
|
||||
eq(ConnectivityManager.TETHERING_BLUETOOTH), anyBoolean(), any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void startTether_startsBluetoothTetherWhenOff() {
|
||||
BluetoothAdapter adapter = mock(BluetoothAdapter.class);
|
||||
ReflectionHelpers.setField(mEnabler, "mBluetoothAdapter", adapter);
|
||||
when(adapter.getState()).thenReturn(BluetoothAdapter.STATE_OFF);
|
||||
public void stopTethering_setBluetoothTetheringStoppedByUserAndUpdateState() {
|
||||
mSwitchWidgetController.setListener(mEnabler);
|
||||
mSwitchWidgetController.startListening();
|
||||
int state = TetherEnabler.TETHERING_BLUETOOTH_ON;
|
||||
doReturn(state).when(mEnabler).getTetheringState(null /* tethered */);
|
||||
|
||||
mEnabler.startTethering(ConnectivityManager.TETHERING_BLUETOOTH);
|
||||
verify(adapter).enable();
|
||||
|
||||
when(adapter.getState()).thenReturn(BluetoothAdapter.STATE_ON);
|
||||
mEnabler.startTethering(ConnectivityManager.TETHERING_BLUETOOTH);
|
||||
verify(mConnectivityManager).startTethering(
|
||||
eq(ConnectivityManager.TETHERING_BLUETOOTH), anyBoolean(), any(), any());
|
||||
mEnabler.stopTethering(TetheringManager.TETHERING_BLUETOOTH);
|
||||
assertThat(mEnabler.mBluetoothTetheringStoppedByUser).isTrue();
|
||||
verify(mEnabler).updateState(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -210,35 +198,44 @@ public class TetherEnablerTest {
|
||||
|
||||
@Test
|
||||
public void updateState_shouldEnableSwitchBarTethering() {
|
||||
when(mConnectivityManager.getTetheredIfaces()).thenReturn(USB_TETHERED);
|
||||
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
|
||||
|
||||
mSwitchWidgetController.setListener(mEnabler);
|
||||
mSwitchWidgetController.startListening();
|
||||
|
||||
ReflectionHelpers.setField(mEnabler, "mDataSaverEnabled", false);
|
||||
mEnabler.updateState(new String[]{""});
|
||||
mEnabler.updateState(null/*tethered*/);
|
||||
verify(mSwitchBar).setEnabled(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_onSharedPreferencesChangeNeverCalled() {
|
||||
mSharedPreferences.registerOnSharedPreferenceChangeListener(mEnabler);
|
||||
public void updateState_shouldCallListener() {
|
||||
OnTetherStateUpdateListener listener = mock(
|
||||
OnTetherStateUpdateListener.class);
|
||||
List<OnTetherStateUpdateListener> listeners = new ArrayList<>();
|
||||
listeners.add(listener);
|
||||
ReflectionHelpers.setField(mEnabler, "mListeners", listeners);
|
||||
mSwitchWidgetController.setListener(mEnabler);
|
||||
mSwitchWidgetController.startListening();
|
||||
|
||||
mEnabler.updateState(null /* tethered */);
|
||||
verify(mEnabler, never()).onSharedPreferenceChanged(eq(mSharedPreferences), any());
|
||||
verify(mEnabler, never()).onSharedPreferenceChanged(eq(mSharedPreferences), any());
|
||||
verify(listener).onTetherStateUpdated(anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_setSharedPreferencesOnlyWhenNeeded() {
|
||||
mSwitchWidgetController.setListener(mEnabler);
|
||||
mSwitchWidgetController.startListening();
|
||||
|
||||
mEnabler.updateState(null /* tethered */);
|
||||
verify(mSharedPreferences, never()).edit();
|
||||
|
||||
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
|
||||
mSharedPreferences.registerOnSharedPreferenceChangeListener(mEnabler);
|
||||
mEnabler.updateState(USB_TETHERED);
|
||||
public void addListener_listenerShouldAdded() {
|
||||
OnTetherStateUpdateListener listener = mock(
|
||||
OnTetherStateUpdateListener.class);
|
||||
mEnabler.addListener(listener);
|
||||
assertThat(mEnabler.mListeners).contains(listener);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void remListener_listenerShouldBeRemoved() {
|
||||
OnTetherStateUpdateListener listener = mock(
|
||||
OnTetherStateUpdateListener.class);
|
||||
mEnabler.removeListener(listener);
|
||||
assertThat(mEnabler.mListeners).doesNotContain(listener);
|
||||
}
|
||||
}
|
@@ -27,8 +27,8 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.TetheringManager;
|
||||
|
||||
import androidx.preference.SwitchPreference;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
@@ -47,7 +47,7 @@ public class UsbTetherPreferenceControllerTest {
|
||||
@Mock
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
@Mock
|
||||
private SharedPreferences mSharedPreferences;
|
||||
private TetherEnabler mTetherEnabler;
|
||||
|
||||
private Context mContext;
|
||||
private UsbTetherPreferenceController mController;
|
||||
@@ -61,9 +61,8 @@ public class UsbTetherPreferenceControllerTest {
|
||||
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
|
||||
mConnectivityManager);
|
||||
when(mConnectivityManager.getTetherableUsbRegexs()).thenReturn(new String[]{""});
|
||||
when(mContext.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE))
|
||||
.thenReturn(mSharedPreferences);
|
||||
mController = new UsbTetherPreferenceController(mContext, USB_TETHER_KEY);
|
||||
mController.setTetherEnabler(mTetherEnabler);
|
||||
mSwitchPreference = spy(SwitchPreference.class);
|
||||
ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference);
|
||||
}
|
||||
@@ -75,6 +74,18 @@ public class UsbTetherPreferenceControllerTest {
|
||||
verify(mContext).registerReceiver(eq(mController.mUsbChangeReceiver), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_shouldAddListenerOnResume() {
|
||||
mController.onResume();
|
||||
verify(mTetherEnabler).addListener(mController);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_shouldRemoveListenrOnPause() {
|
||||
mController.onPause();
|
||||
verify(mTetherEnabler).removeListener(mController);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_shouldUnregisterReceiverOnStop() {
|
||||
mController.onStart();
|
||||
@@ -93,18 +104,26 @@ public class UsbTetherPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void switch_shouldCheckedWhenSharedPreferencesIsTrue() {
|
||||
when(mSharedPreferences.getBoolean(USB_TETHER_KEY, false)).thenReturn(true);
|
||||
mController.onSharedPreferenceChanged(mSharedPreferences, USB_TETHER_KEY);
|
||||
|
||||
verify(mSwitchPreference).setChecked(true);
|
||||
public void setChecked_shouldStartUsbTethering() {
|
||||
mController.setChecked(true);
|
||||
verify(mTetherEnabler).startTethering(TetheringManager.TETHERING_USB);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void switch_shouldUnCheckedWhenSharedPreferencesIsFalse() {
|
||||
when(mSharedPreferences.getBoolean(USB_TETHER_KEY, false)).thenReturn(false);
|
||||
mController.onSharedPreferenceChanged(mSharedPreferences, USB_TETHER_KEY);
|
||||
public void setUnchecked_shouldStopUsbTethering() {
|
||||
mController.setChecked(false);
|
||||
verify(mTetherEnabler).stopTethering(TetheringManager.TETHERING_USB);
|
||||
}
|
||||
|
||||
verify(mSwitchPreference).setChecked(false);
|
||||
@Test
|
||||
public void switch_shouldCheckedWhenUsbTethering() {
|
||||
mController.onTetherStateUpdated(TetherEnabler.TETHERING_USB_ON);
|
||||
assertThat(mController.isChecked()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void switch_shouldUnCheckedWhenUsbNotTethering() {
|
||||
mController.onTetherStateUpdated(TetherEnabler.TETHERING_OFF);
|
||||
assertThat(mController.isChecked()).isFalse();
|
||||
}
|
||||
}
|
||||
|
@@ -16,20 +16,16 @@
|
||||
|
||||
package com.android.settings.network;
|
||||
|
||||
import static com.android.settings.network.TetherEnabler.BLUETOOTH_TETHER_KEY;
|
||||
import static com.android.settings.network.TetherEnabler.USB_TETHER_KEY;
|
||||
import static com.android.settings.network.TetherEnabler.WIFI_TETHER_DISABLE_KEY;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
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.SharedPreferences;
|
||||
import android.net.ConnectivityManager;
|
||||
|
||||
import androidx.preference.PreferenceScreen;
|
||||
@@ -50,9 +46,9 @@ public class WifiTetherDisablePreferenceControllerTest {
|
||||
@Mock
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
@Mock
|
||||
private SharedPreferences mSharedPreferences;
|
||||
@Mock
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
@Mock
|
||||
private TetherEnabler mTetherEnabler;
|
||||
|
||||
private SwitchPreference mPreference;
|
||||
private Context mContext;
|
||||
@@ -67,60 +63,40 @@ public class WifiTetherDisablePreferenceControllerTest {
|
||||
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
|
||||
mConnectivityManager);
|
||||
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{""});
|
||||
when(mContext.getSharedPreferences(TetherEnabler.SHARED_PREF, Context.MODE_PRIVATE))
|
||||
.thenReturn(mSharedPreferences);
|
||||
mController = new WifiTetherDisablePreferenceController(mContext, WIFI_TETHER_DISABLE_KEY);
|
||||
mController.setTetherEnabler(mTetherEnabler);
|
||||
ReflectionHelpers.setField(mController, "mScreen", mPreferenceScreen);
|
||||
ReflectionHelpers.setField(mController, "mPreference", mPreference);
|
||||
when(mPreferenceScreen.findPreference(WIFI_TETHER_DISABLE_KEY)).thenReturn(mPreference);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
public void lifecycle_shouldRegisterReceiverOnResume() {
|
||||
mController.onResume();
|
||||
|
||||
verify(mSharedPreferences).registerOnSharedPreferenceChangeListener(eq(mController));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void lifecycle_shouldUnregisterReceiverOnStop() {
|
||||
mController.onResume();
|
||||
mController.onPause();
|
||||
|
||||
verify(mSharedPreferences).unregisterOnSharedPreferenceChangeListener(eq(mController));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void display_availableChangedCorrectly() {
|
||||
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[0]);
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
|
||||
when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"test"});
|
||||
ReflectionHelpers.setField(mController, "mBluetoothTetherEnabled", false);
|
||||
ReflectionHelpers.setField(mController, "mUSBTetherEnabled", false);
|
||||
ReflectionHelpers.setField(mController, "mBluetoothTethering", false);
|
||||
ReflectionHelpers.setField(mController, "mUsbTethering", false);
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void switch_shouldListenToUsbAndBluetooth() {
|
||||
when(mSharedPreferences.getBoolean(BLUETOOTH_TETHER_KEY, false)).thenReturn(true);
|
||||
mController.onSharedPreferenceChanged(mSharedPreferences, BLUETOOTH_TETHER_KEY);
|
||||
int state = TetherEnabler.TETHERING_BLUETOOTH_ON;
|
||||
mController.onTetherStateUpdated(state);
|
||||
verify(mPreference).setVisible(eq(true));
|
||||
|
||||
when(mSharedPreferences.getBoolean(USB_TETHER_KEY, false)).thenReturn(true);
|
||||
mController.onSharedPreferenceChanged(mSharedPreferences, USB_TETHER_KEY);
|
||||
state |= TetherEnabler.TETHERING_USB_ON;
|
||||
mController.onTetherStateUpdated(state);
|
||||
assertThat(mController.shouldShow()).isTrue();
|
||||
|
||||
when(mSharedPreferences.getBoolean(USB_TETHER_KEY, false)).thenReturn(false);
|
||||
mController.onSharedPreferenceChanged(mSharedPreferences, USB_TETHER_KEY);
|
||||
state = TetherEnabler.TETHERING_USB_ON;
|
||||
mController.onTetherStateUpdated(state);
|
||||
assertThat(mController.shouldShow()).isTrue();
|
||||
|
||||
when(mSharedPreferences.getBoolean(BLUETOOTH_TETHER_KEY, false)).thenReturn(false);
|
||||
when(mSharedPreferences.edit()).thenReturn(mock(SharedPreferences.Editor.class));
|
||||
when(mPreference.isChecked()).thenReturn(true);
|
||||
mController.onSharedPreferenceChanged(mSharedPreferences, BLUETOOTH_TETHER_KEY);
|
||||
verify(mPreference).setChecked(eq(false));
|
||||
state = TetherEnabler.TETHERING_OFF;
|
||||
mController.onTetherStateUpdated(state);
|
||||
verify(mPreference).setVisible(eq(false));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user