Merge "Prevent NPEs when registering/unregistering ConnDiags CBs." am: 5805d3cfd2 am: 5c5ff18089
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1761210 Change-Id: Ie5209e824f510d7866e74ce61e4b04e4dd8cd84e
This commit is contained in:
@@ -9524,6 +9524,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
@NonNull IConnectivityDiagnosticsCallback callback,
|
||||
@NonNull NetworkRequest request,
|
||||
@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) {
|
||||
throw new IllegalArgumentException("ConnectivityManager.TYPE_* are deprecated."
|
||||
+ " Please use NetworkCapabilities instead.");
|
||||
@@ -9572,6 +9576,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
@Override
|
||||
public void simulateDataStall(int detectionMethod, long timestampMillis,
|
||||
@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,
|
||||
android.Manifest.permission.NETWORK_STACK);
|
||||
final NetworkCapabilities nc = getNetworkCapabilitiesInternal(network);
|
||||
|
||||
@@ -204,6 +204,7 @@ import android.content.res.Resources;
|
||||
import android.location.LocationManager;
|
||||
import android.net.CaptivePortalData;
|
||||
import android.net.ConnectionInfo;
|
||||
import android.net.ConnectivityDiagnosticsManager.DataStallReport;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.ConnectivityManager.NetworkCallback;
|
||||
import android.net.ConnectivityManager.PacketKeepalive;
|
||||
@@ -285,6 +286,7 @@ import android.os.Messenger;
|
||||
import android.os.Parcel;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.os.Parcelable;
|
||||
import android.os.PersistableBundle;
|
||||
import android.os.Process;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceSpecificException;
|
||||
@@ -10257,6 +10259,35 @@ public class ConnectivityServiceTest {
|
||||
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) {
|
||||
final NetworkCapabilities cellNc = new NetworkCapabilities.Builder(nc)
|
||||
.addTransportType(TRANSPORT_CELLULAR).build();
|
||||
@@ -10567,6 +10598,24 @@ public class ConnectivityServiceTest {
|
||||
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
|
||||
public void testRouteAddDeleteUpdate() throws Exception {
|
||||
final NetworkRequest request = new NetworkRequest.Builder().build();
|
||||
|
||||
Reference in New Issue
Block a user