Add toast error message for no WiFi on wireless debugging.

Show a toast to connect to a WiFi network when the user tries to
enable wireless debugging while not connected to any Wi-Fi network.

Bug: 150139061
Bug: 149843499

Test: make RunSettingsRoboTests ROBOTEST_FILTER=WirelessDebuggingPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=WirelessDebuggingEnablerTest

Change-Id: I389f5fddc874f60e8156ecf6ef2f1c6eddc1d7a5
Exempt-From-Owner-Approval: LGTM
(cherry picked from commit 564f6ba770)
This commit is contained in:
Joshua Duong
2020-03-02 08:34:26 -08:00
parent 9e118ed61e
commit 75ae058627
5 changed files with 153 additions and 8 deletions

View File

@@ -28,10 +28,12 @@ import android.provider.Settings.Global;
import androidx.lifecycle.LifecycleOwner;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.testutils.shadow.ShadowWirelessDebuggingPreferenceController;
import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.SwitchBarController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -43,7 +45,7 @@ import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowUtils.class)
@Config(shadows = {ShadowUtils.class, ShadowWirelessDebuggingPreferenceController.class})
public class WirelessDebuggingEnablerTest {
@Mock
@@ -66,6 +68,11 @@ public class WirelessDebuggingEnablerTest {
mContext, new SwitchBarController(mSwitchBar), mListener, mLifecycle));
}
@After
public void tearDown() {
ShadowWirelessDebuggingPreferenceController.reset();
}
@Test
public void onCreation_shouldShowSwitchBar() {
verify(mSwitchBar).show();
@@ -120,7 +127,8 @@ public class WirelessDebuggingEnablerTest {
}
@Test
public void onSwitchToggled_true_shouldSetAdbWifiEnabledTrue() {
public void onSwitchToggled_true_wifiConnected_shouldSetAdbWifiEnabledTrue() {
ShadowWirelessDebuggingPreferenceController.setIsWifiConnected(true);
Global.putInt(mContext.getContentResolver(),
Global.ADB_WIFI_ENABLED, 0 /* setting disabled */);
mWirelessDebuggingEnabler.onResume();
@@ -132,11 +140,27 @@ public class WirelessDebuggingEnablerTest {
assertThat(Global.getInt(mContext.getContentResolver(),
Global.ADB_WIFI_ENABLED, -1)).isEqualTo(1);
// Should also get a callback
}
@Test
public void onSwitchToggled_false_shouldSetAdbWifiEnabledFalse() {
public void onSwitchToggled_true_wifiNotConnected_shouldSetAdbWifiEnabledFalse() {
ShadowWirelessDebuggingPreferenceController.setIsWifiConnected(false);
Global.putInt(mContext.getContentResolver(),
Global.ADB_WIFI_ENABLED, 0 /* setting disabled */);
mWirelessDebuggingEnabler.onResume();
verify(mSwitchBar).setChecked(false);
verify(mListener).onEnabled(false);
mWirelessDebuggingEnabler.onSwitchToggled(true);
assertThat(Global.getInt(mContext.getContentResolver(),
Global.ADB_WIFI_ENABLED, -1)).isEqualTo(0);
}
@Test
public void onSwitchToggled_false_wifiConnected_shouldSetAdbWifiEnabledFalse() {
ShadowWirelessDebuggingPreferenceController.setIsWifiConnected(true);
Global.putInt(mContext.getContentResolver(),
Global.ADB_WIFI_ENABLED, 1 /* setting disabled */);
mWirelessDebuggingEnabler.onResume();
@@ -147,7 +171,22 @@ public class WirelessDebuggingEnablerTest {
mWirelessDebuggingEnabler.onSwitchToggled(false);
assertThat(Global.getInt(mContext.getContentResolver(),
Global.ADB_WIFI_ENABLED, -1)).isEqualTo(0);
// Should also get a callback
Global.ADB_WIFI_ENABLED, -1)).isEqualTo(0);
}
@Test
public void onSwitchToggled_false_wifiNotConnected_shouldSetAdbWifiEnabledFalse() {
ShadowWirelessDebuggingPreferenceController.setIsWifiConnected(false);
Global.putInt(mContext.getContentResolver(),
Global.ADB_WIFI_ENABLED, 1 /* setting disabled */);
mWirelessDebuggingEnabler.onResume();
verify(mSwitchBar).setChecked(true);
verify(mListener).onEnabled(true);
mWirelessDebuggingEnabler.onSwitchToggled(false);
assertThat(Global.getInt(mContext.getContentResolver(),
Global.ADB_WIFI_ENABLED, -1)).isEqualTo(0);
}
}