Make ConnectivityServiceTest pass on wifi-only devices.
Test: ConnectivityServiceTest passes on ryu on internal master Test: ConnectivityServiceTest passes on bullhead Change-Id: If94102c7df0257ea9e69e72b07a685ae3c2c4022
This commit is contained in:
@@ -23,7 +23,12 @@ import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||
import static android.net.ConnectivityManager.getNetworkTypeName;
|
||||
import static android.net.NetworkCapabilities.*;
|
||||
|
||||
import static org.mockito.Mockito.anyBoolean;
|
||||
import static org.mockito.Mockito.anyInt;
|
||||
import static org.mockito.Mockito.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
@@ -33,6 +38,7 @@ import android.content.Context;
|
||||
import android.content.ContextWrapper;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.res.Resources;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.ConnectivityManager.NetworkCallback;
|
||||
import android.net.ConnectivityManager.PacketKeepalive;
|
||||
@@ -76,11 +82,16 @@ import android.util.LogPrinter;
|
||||
import com.android.internal.util.WakeupMessage;
|
||||
import com.android.internal.util.test.BroadcastInterceptingContext;
|
||||
import com.android.internal.util.test.FakeSettingsProvider;
|
||||
import com.android.server.connectivity.MockableSystemProperties;
|
||||
import com.android.server.connectivity.NetworkAgentInfo;
|
||||
import com.android.server.connectivity.NetworkMonitor;
|
||||
import com.android.server.connectivity.NetworkMonitor.CaptivePortalProbeResult;
|
||||
import com.android.server.net.NetworkPinner;
|
||||
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.Spy;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -133,8 +144,19 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
private class MockContext extends BroadcastInterceptingContext {
|
||||
private final MockContentResolver mContentResolver;
|
||||
|
||||
@Spy private Resources mResources;
|
||||
|
||||
MockContext(Context base) {
|
||||
super(base);
|
||||
|
||||
mResources = spy(base.getResources());
|
||||
when(mResources.getStringArray(com.android.internal.R.array.networkAttributes)).
|
||||
thenReturn(new String[] {
|
||||
"wifi,1,1,1,-1,true",
|
||||
"mobile,0,0,0,-1,true",
|
||||
"mobile_mms,2,0,2,60000,true",
|
||||
});
|
||||
|
||||
mContentResolver = new MockContentResolver();
|
||||
mContentResolver.addProvider(Settings.AUTHORITY, new FakeSettingsProvider());
|
||||
}
|
||||
@@ -150,6 +172,11 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
public ContentResolver getContentResolver() {
|
||||
return mContentResolver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Resources getResources() {
|
||||
return mResources;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -614,6 +641,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
private class WrappedConnectivityService extends ConnectivityService {
|
||||
public WrappedMultinetworkPolicyTracker wrappedMultinetworkPolicyTracker;
|
||||
private WrappedNetworkMonitor mLastCreatedNetworkMonitor;
|
||||
private MockableSystemProperties mSystemProperties;
|
||||
|
||||
public WrappedConnectivityService(Context context, INetworkManagementService netManager,
|
||||
INetworkStatsService statsService, INetworkPolicyManager policyManager,
|
||||
@@ -623,9 +651,13 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDefaultTcpRwnd() {
|
||||
// Prevent wrapped ConnectivityService from trying to write to SystemProperties.
|
||||
return 0;
|
||||
protected MockableSystemProperties getSystemProperties() {
|
||||
// Minimal approach to overriding system properties: let most calls fall through to real
|
||||
// device values, and only override ones values that are important to this test.
|
||||
mSystemProperties = spy(new MockableSystemProperties());
|
||||
when(mSystemProperties.getInt("net.tcp.default_init_rwnd", 0)).thenReturn(0);
|
||||
when(mSystemProperties.getBoolean("ro.radio.noril", false)).thenReturn(false);
|
||||
return mSystemProperties;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -795,6 +827,14 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
return cv;
|
||||
}
|
||||
|
||||
public void testNetworkTypes() {
|
||||
// Ensure that our mocks for the networkAttributes config variable work as expected. If they
|
||||
// don't, then tests that depend on CONNECTIVITY_ACTION broadcasts for these network types
|
||||
// will fail. Failing here is much easier to debug.
|
||||
assertTrue(mCm.isNetworkSupported(TYPE_WIFI));
|
||||
assertTrue(mCm.isNetworkSupported(TYPE_MOBILE));
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testLingering() throws Exception {
|
||||
verifyNoNetwork();
|
||||
|
||||
Reference in New Issue
Block a user