Add callback when tethering fails

Add real callback instead of using NoOpCallback. When it fails,
reset the switchbar.

Change-Id: I6f87d7cefa67ff8f9f59a815fd976940fb61c06c
Fixes: 72904303
Test: RunSettingsRoboTests
This commit is contained in:
Lei Yu
2018-03-22 12:59:55 -07:00
parent 592faf364d
commit 0544fbd507
2 changed files with 37 additions and 1 deletions

View File

@@ -22,6 +22,8 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkPolicyManager;
import android.net.wifi.WifiManager;
import android.provider.Settings;
@@ -40,9 +42,14 @@ import org.robolectric.RuntimeEnvironment;
public class WifiTetherSwitchBarControllerTest {
@Mock
private WifiManager mWifiManager;
@Mock
private ConnectivityManager mConnectivityManager;
@Mock
private NetworkPolicyManager mNetworkPolicyManager;
private Context mContext;
private SwitchBar mSwitchBar;
private WifiTetherSwitchBarController mController;
@Before
public void setUp() {
@@ -51,6 +58,13 @@ public class WifiTetherSwitchBarControllerTest {
mContext = spy(RuntimeEnvironment.application);
mSwitchBar = new SwitchBar(mContext);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
mConnectivityManager);
when(mContext.getSystemService(Context.NETWORK_POLICY_SERVICE)).thenReturn(
mNetworkPolicyManager);
mController = new WifiTetherSwitchBarController(mContext,
new SwitchBarController(mSwitchBar));
}
@Test
@@ -63,4 +77,15 @@ public class WifiTetherSwitchBarControllerTest {
assertThat(mSwitchBar.isEnabled()).isFalse();
}
@Test
public void testStartTether_fail_resetSwitchBar() {
when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false);
mController.startTether();
mController.mOnStartTetheringCallback.onTetheringFailed();
assertThat(mSwitchBar.isChecked()).isFalse();
assertThat(mSwitchBar.isEnabled()).isTrue();
}
}