Merge "Add a broadcast receiver to WifiDetailsPreferenceController." into oc-dev

This commit is contained in:
TreeHugger Robot
2017-04-13 17:08:39 +00:00
committed by Android (Google) Code Review
3 changed files with 159 additions and 49 deletions

View File

@@ -24,7 +24,9 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.IpPrefix;
@@ -56,9 +58,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -79,12 +78,14 @@ public class WifiDetailPreferenceControllerTest {
private PreferenceScreen mockScreen;
@Mock private AccessPoint mockAccessPoint;
@Mock private WifiManager mockWifiManager;
@Mock private Activity mockActivity;
@Mock private ConnectivityManager mockConnectivityManager;
@Mock private Network mockNetwork;
@Mock private NetworkInfo mockNetworkInfo;
@Mock private WifiConfiguration mockWifiConfig;
@Mock private WifiInfo mockWifiInfo;
@Mock private Network mockNetwork;
@Mock private WifiNetworkDetailsFragment mockFragment;
@Mock private WifiManager mockWifiManager;
@Mock private Preference mockConnectionDetailPref;
@Mock private WifiDetailPreference mockSignalStrengthPref;
@@ -122,6 +123,9 @@ public class WifiDetailPreferenceControllerTest {
when(mockAccessPoint.getRssi()).thenReturn(RSSI);
when(mockAccessPoint.getSecurityString(false)).thenReturn(SECURITY);
when(mockConnectivityManager.getNetworkInfo(any(Network.class)))
.thenReturn(mockNetworkInfo);
when(mockWifiInfo.getLinkSpeed()).thenReturn(LINK_SPEED);
when(mockWifiInfo.getRssi()).thenReturn(RSSI);
when(mockWifiInfo.getMacAddress()).thenReturn(MAC_ADDRESS);
@@ -131,12 +135,23 @@ public class WifiDetailPreferenceControllerTest {
mLinkProperties = new LinkProperties();
when(mockConnectivityManager.getLinkProperties(mockNetwork)).thenReturn(mLinkProperties);
mController = new WifiDetailPreferenceController(
mockAccessPoint, mContext, mLifecycle, mockWifiManager, mockConnectivityManager);
when(mockFragment.getActivity()).thenReturn(mockActivity);
mController = newWifiDetailPreferenceController();
setupMockedPreferenceScreen();
}
private WifiDetailPreferenceController newWifiDetailPreferenceController() {
return new WifiDetailPreferenceController(
mockAccessPoint,
mockConnectivityManager,
mContext,
mockFragment,
mLifecycle,
mockWifiManager);
}
private void setupMockedPreferenceScreen() {
when(mockScreen.findPreference(WifiDetailPreferenceController.KEY_CONNECTION_DETAIL_PREF))
.thenReturn(mockConnectionDetailPref);
@@ -175,11 +190,17 @@ public class WifiDetailPreferenceControllerTest {
}
@Test
public void latestWifiInfoAndConfig_shouldBeFetchedOnResume() {
public void latestWifiInfo_shouldBeFetchedOnResume() {
mController.onResume();
// Once in construction, once in onResume
verify(mockWifiManager, times(2)).getConnectionInfo();
verify(mockWifiManager, times(1)).getConnectionInfo();
}
@Test
public void latestNetworkInfo_shouldBeFetchedOnResume() {
mController.onResume();
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
}
@Test
@@ -321,9 +342,9 @@ public class WifiDetailPreferenceControllerTest {
@Test
public void canForgetNetwork_noNetwork() {
when(mockAccessPoint.getConfig()).thenReturn(null);
mController = new WifiDetailPreferenceController(
mockAccessPoint, mContext, mLifecycle, mockWifiManager, mockConnectivityManager);
mController = newWifiDetailPreferenceController();
mController.displayPreference(mockScreen);
mController.onResume();
assertThat(mController.canForgetNetwork()).isFalse();
}
@@ -332,9 +353,9 @@ public class WifiDetailPreferenceControllerTest {
public void canForgetNetwork_ephemeral() {
when(mockWifiInfo.isEphemeral()).thenReturn(true);
when(mockAccessPoint.getConfig()).thenReturn(null);
mController = new WifiDetailPreferenceController(
mockAccessPoint, mContext, mLifecycle, mockWifiManager, mockConnectivityManager);
mController = newWifiDetailPreferenceController();
mController.displayPreference(mockScreen);
mController.onResume();
assertThat(mController.canForgetNetwork()).isTrue();
}
@@ -347,10 +368,11 @@ public class WifiDetailPreferenceControllerTest {
@Test
public void forgetNetwork_ephemeral() {
String ssid = "ssid";
when(mockWifiInfo.isEphemeral()).thenReturn(true);
when(mockWifiInfo.getSSID()).thenReturn(ssid);
mController.onResume();
mController.forgetNetwork();
verify(mockWifiManager).disableEphemeralNetwork(ssid);
@@ -364,4 +386,38 @@ public class WifiDetailPreferenceControllerTest {
verify(mockWifiManager).forget(mockWifiConfig.networkId, null);
}
@Test
public void networkStateChangedIntent_shouldRefetchInfo() {
mController.onResume();
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
verify(mockWifiManager, times(1)).getConnectionInfo();
mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));
verify(mockConnectivityManager, times(2)).getNetworkInfo(any(Network.class));
verify(mockWifiManager, times(2)).getConnectionInfo();
}
@Test
public void rssiChangedIntent_shouldRefetchInfo() {
mController.onResume();
verify(mockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
verify(mockWifiManager, times(1)).getConnectionInfo();
mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION));
verify(mockConnectivityManager, times(2)).getNetworkInfo(any(Network.class));
verify(mockWifiManager, times(2)).getConnectionInfo();
}
@Test
public void networkDisconnectdState_shouldFinishActivity() {
mController.onResume();
when(mockConnectivityManager.getNetworkInfo(any(Network.class))).thenReturn(null);
mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));
verify(mockActivity).finish();
}
}