Merge "Prevent NPEs when registering/unregistering ConnDiags CBs."
This commit is contained in:
@@ -9525,6 +9525,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
@NonNull IConnectivityDiagnosticsCallback callback,
|
@NonNull IConnectivityDiagnosticsCallback callback,
|
||||||
@NonNull NetworkRequest request,
|
@NonNull NetworkRequest request,
|
||||||
@NonNull String callingPackageName) {
|
@NonNull String callingPackageName) {
|
||||||
|
Objects.requireNonNull(callback, "callback must not be null");
|
||||||
|
Objects.requireNonNull(request, "request must not be null");
|
||||||
|
Objects.requireNonNull(callingPackageName, "callingPackageName must not be null");
|
||||||
|
|
||||||
if (request.legacyType != TYPE_NONE) {
|
if (request.legacyType != TYPE_NONE) {
|
||||||
throw new IllegalArgumentException("ConnectivityManager.TYPE_* are deprecated."
|
throw new IllegalArgumentException("ConnectivityManager.TYPE_* are deprecated."
|
||||||
+ " Please use NetworkCapabilities instead.");
|
+ " Please use NetworkCapabilities instead.");
|
||||||
@@ -9573,6 +9577,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
@Override
|
@Override
|
||||||
public void simulateDataStall(int detectionMethod, long timestampMillis,
|
public void simulateDataStall(int detectionMethod, long timestampMillis,
|
||||||
@NonNull Network network, @NonNull PersistableBundle extras) {
|
@NonNull Network network, @NonNull PersistableBundle extras) {
|
||||||
|
Objects.requireNonNull(network, "network must not be null");
|
||||||
|
Objects.requireNonNull(extras, "extras must not be null");
|
||||||
|
|
||||||
enforceAnyPermissionOf(android.Manifest.permission.MANAGE_TEST_NETWORKS,
|
enforceAnyPermissionOf(android.Manifest.permission.MANAGE_TEST_NETWORKS,
|
||||||
android.Manifest.permission.NETWORK_STACK);
|
android.Manifest.permission.NETWORK_STACK);
|
||||||
final NetworkCapabilities nc = getNetworkCapabilitiesInternal(network);
|
final NetworkCapabilities nc = getNetworkCapabilitiesInternal(network);
|
||||||
|
|||||||
@@ -204,6 +204,7 @@ import android.content.res.Resources;
|
|||||||
import android.location.LocationManager;
|
import android.location.LocationManager;
|
||||||
import android.net.CaptivePortalData;
|
import android.net.CaptivePortalData;
|
||||||
import android.net.ConnectionInfo;
|
import android.net.ConnectionInfo;
|
||||||
|
import android.net.ConnectivityDiagnosticsManager.DataStallReport;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.ConnectivityManager.NetworkCallback;
|
import android.net.ConnectivityManager.NetworkCallback;
|
||||||
import android.net.ConnectivityManager.PacketKeepalive;
|
import android.net.ConnectivityManager.PacketKeepalive;
|
||||||
@@ -285,6 +286,7 @@ import android.os.Messenger;
|
|||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
import android.os.PersistableBundle;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.ServiceSpecificException;
|
import android.os.ServiceSpecificException;
|
||||||
@@ -10126,6 +10128,35 @@ public class ConnectivityServiceTest {
|
|||||||
assertTrue(mService.mConnectivityDiagnosticsCallbacks.containsKey(mIBinder));
|
assertTrue(mService.mConnectivityDiagnosticsCallbacks.containsKey(mIBinder));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(expected = NullPointerException.class)
|
||||||
|
public void testRegisterConnectivityDiagnosticsCallbackNullCallback() {
|
||||||
|
mService.registerConnectivityDiagnosticsCallback(
|
||||||
|
null /* callback */,
|
||||||
|
new NetworkRequest.Builder().build(),
|
||||||
|
mContext.getPackageName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = NullPointerException.class)
|
||||||
|
public void testRegisterConnectivityDiagnosticsCallbackNullNetworkRequest() {
|
||||||
|
mService.registerConnectivityDiagnosticsCallback(
|
||||||
|
mConnectivityDiagnosticsCallback,
|
||||||
|
null /* request */,
|
||||||
|
mContext.getPackageName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = NullPointerException.class)
|
||||||
|
public void testRegisterConnectivityDiagnosticsCallbackNullPackageName() {
|
||||||
|
mService.registerConnectivityDiagnosticsCallback(
|
||||||
|
mConnectivityDiagnosticsCallback,
|
||||||
|
new NetworkRequest.Builder().build(),
|
||||||
|
null /* callingPackageName */);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = NullPointerException.class)
|
||||||
|
public void testUnregisterConnectivityDiagnosticsCallbackNullPackageName() {
|
||||||
|
mService.unregisterConnectivityDiagnosticsCallback(null /* callback */);
|
||||||
|
}
|
||||||
|
|
||||||
public NetworkAgentInfo fakeMobileNai(NetworkCapabilities nc) {
|
public NetworkAgentInfo fakeMobileNai(NetworkCapabilities nc) {
|
||||||
final NetworkCapabilities cellNc = new NetworkCapabilities.Builder(nc)
|
final NetworkCapabilities cellNc = new NetworkCapabilities.Builder(nc)
|
||||||
.addTransportType(TRANSPORT_CELLULAR).build();
|
.addTransportType(TRANSPORT_CELLULAR).build();
|
||||||
@@ -10436,6 +10467,24 @@ public class ConnectivityServiceTest {
|
|||||||
areConnDiagCapsRedacted(report.getNetworkCapabilities())));
|
areConnDiagCapsRedacted(report.getNetworkCapabilities())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(expected = NullPointerException.class)
|
||||||
|
public void testSimulateDataStallNullNetwork() {
|
||||||
|
mService.simulateDataStall(
|
||||||
|
DataStallReport.DETECTION_METHOD_DNS_EVENTS,
|
||||||
|
0L /* timestampMillis */,
|
||||||
|
null /* network */,
|
||||||
|
new PersistableBundle());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = NullPointerException.class)
|
||||||
|
public void testSimulateDataStallNullPersistableBundle() {
|
||||||
|
mService.simulateDataStall(
|
||||||
|
DataStallReport.DETECTION_METHOD_DNS_EVENTS,
|
||||||
|
0L /* timestampMillis */,
|
||||||
|
mock(Network.class),
|
||||||
|
null /* extras */);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRouteAddDeleteUpdate() throws Exception {
|
public void testRouteAddDeleteUpdate() throws Exception {
|
||||||
final NetworkRequest request = new NetworkRequest.Builder().build();
|
final NetworkRequest request = new NetworkRequest.Builder().build();
|
||||||
|
|||||||
Reference in New Issue
Block a user