Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 751bb3f7 authored by Chalard Jean's avatar Chalard Jean
Browse files

Unify assertThrows

Test: atest FrameworksTestsNet NetworkStackTests
Change-Id: Ib6d5d2577a5b95f90857d8d146b00af516e9944d
parent b8bdc721
Loading
Loading
Loading
Loading
+41 −75
Original line number Original line Diff line number Diff line
@@ -157,6 +157,7 @@ import android.net.metrics.IpConnectivityLog;
import android.net.shared.NetworkMonitorUtils;
import android.net.shared.NetworkMonitorUtils;
import android.net.shared.PrivateDnsConfig;
import android.net.shared.PrivateDnsConfig;
import android.net.util.MultinetworkPolicyTracker;
import android.net.util.MultinetworkPolicyTracker;
import android.os.BadParcelableException;
import android.os.Binder;
import android.os.Binder;
import android.os.ConditionVariable;
import android.os.ConditionVariable;
import android.os.Handler;
import android.os.Handler;
@@ -3096,24 +3097,18 @@ public class ConnectivityServiceTest {


    @Test
    @Test
    public void testInvalidNetworkSpecifier() {
    public void testInvalidNetworkSpecifier() {
        try {
        assertThrows(IllegalArgumentException.class, () -> {
            NetworkRequest.Builder builder = new NetworkRequest.Builder();
            NetworkRequest.Builder builder = new NetworkRequest.Builder();
            builder.setNetworkSpecifier(new MatchAllNetworkSpecifier());
            builder.setNetworkSpecifier(new MatchAllNetworkSpecifier());
            fail("NetworkRequest builder with MatchAllNetworkSpecifier");
        });
        } catch (IllegalArgumentException expected) {
            // expected
        }


        try {
        assertThrows(IllegalArgumentException.class, () -> {
            NetworkCapabilities networkCapabilities = new NetworkCapabilities();
            NetworkCapabilities networkCapabilities = new NetworkCapabilities();
            networkCapabilities.addTransportType(TRANSPORT_WIFI)
            networkCapabilities.addTransportType(TRANSPORT_WIFI)
                    .setNetworkSpecifier(new MatchAllNetworkSpecifier());
                    .setNetworkSpecifier(new MatchAllNetworkSpecifier());
            mService.requestNetwork(networkCapabilities, null, 0, null,
            mService.requestNetwork(networkCapabilities, null, 0, null,
                    ConnectivityManager.TYPE_WIFI);
                    ConnectivityManager.TYPE_WIFI);
            fail("ConnectivityService requestNetwork with MatchAllNetworkSpecifier");
        });
        } catch (IllegalArgumentException expected) {
            // expected
        }


        class NonParcelableSpecifier extends NetworkSpecifier {
        class NonParcelableSpecifier extends NetworkSpecifier {
            public boolean satisfiedBy(NetworkSpecifier other) { return false; }
            public boolean satisfiedBy(NetworkSpecifier other) { return false; }
@@ -3122,24 +3117,22 @@ public class ConnectivityServiceTest {
            @Override public int describeContents() { return 0; }
            @Override public int describeContents() { return 0; }
            @Override public void writeToParcel(Parcel p, int flags) {}
            @Override public void writeToParcel(Parcel p, int flags) {}
        }
        }
        NetworkRequest.Builder builder;


        builder = new NetworkRequest.Builder().addTransportType(TRANSPORT_ETHERNET);
        final NetworkRequest.Builder builder =
        try {
                new NetworkRequest.Builder().addTransportType(TRANSPORT_ETHERNET);
        assertThrows(ClassCastException.class, () -> {
            builder.setNetworkSpecifier(new NonParcelableSpecifier());
            builder.setNetworkSpecifier(new NonParcelableSpecifier());
            Parcel parcelW = Parcel.obtain();
            Parcel parcelW = Parcel.obtain();
            builder.build().writeToParcel(parcelW, 0);
            builder.build().writeToParcel(parcelW, 0);
            fail("Parceling a non-parcelable specifier did not throw an exception");
        });
        } catch (Exception e) {
            // expected
        }


        builder = new NetworkRequest.Builder().addTransportType(TRANSPORT_ETHERNET);
        final NetworkRequest nr =
        builder.setNetworkSpecifier(new ParcelableSpecifier());
                new NetworkRequest.Builder().addTransportType(TRANSPORT_ETHERNET)
        NetworkRequest nr = builder.build();
                .setNetworkSpecifier(new ParcelableSpecifier())
                .build();
        assertNotNull(nr);
        assertNotNull(nr);


        try {
        assertThrows(BadParcelableException.class, () -> {
            Parcel parcelW = Parcel.obtain();
            Parcel parcelW = Parcel.obtain();
            nr.writeToParcel(parcelW, 0);
            nr.writeToParcel(parcelW, 0);
            byte[] bytes = parcelW.marshall();
            byte[] bytes = parcelW.marshall();
@@ -3149,10 +3142,7 @@ public class ConnectivityServiceTest {
            parcelR.unmarshall(bytes, 0, bytes.length);
            parcelR.unmarshall(bytes, 0, bytes.length);
            parcelR.setDataPosition(0);
            parcelR.setDataPosition(0);
            NetworkRequest rereadNr = NetworkRequest.CREATOR.createFromParcel(parcelR);
            NetworkRequest rereadNr = NetworkRequest.CREATOR.createFromParcel(parcelR);
            fail("Unparceling a non-framework NetworkSpecifier did not throw an exception");
        });
        } catch (Exception e) {
            // expected
        }
    }
    }


    @Test
    @Test
@@ -3181,12 +3171,9 @@ public class ConnectivityServiceTest {
        NetworkRequest networkRequest = newWifiRequestBuilder().setNetworkSpecifier(
        NetworkRequest networkRequest = newWifiRequestBuilder().setNetworkSpecifier(
                networkSpecifier).build();
                networkSpecifier).build();
        TestNetworkCallback networkCallback = new TestNetworkCallback();
        TestNetworkCallback networkCallback = new TestNetworkCallback();
        try {
        assertThrows(SecurityException.class, () -> {
            mCm.requestNetwork(networkRequest, networkCallback);
            mCm.requestNetwork(networkRequest, networkCallback);
            fail("Network request with spoofed UID did not throw a SecurityException");
        });
        } catch (SecurityException e) {
            // expected
        }
    }
    }


    @Test
    @Test
@@ -3198,36 +3185,20 @@ public class ConnectivityServiceTest {
                .build();
                .build();
        // Registering a NetworkCallback with signal strength but w/o NETWORK_SIGNAL_STRENGTH_WAKEUP
        // Registering a NetworkCallback with signal strength but w/o NETWORK_SIGNAL_STRENGTH_WAKEUP
        // permission should get SecurityException.
        // permission should get SecurityException.
        try {
        assertThrows(SecurityException.class, () ->
            mCm.registerNetworkCallback(r, new NetworkCallback());
                mCm.registerNetworkCallback(r, new NetworkCallback()));
            fail("Expected SecurityException filing a callback with signal strength");
        } catch (SecurityException expected) {
            // expected
        }


        try {
        assertThrows(SecurityException.class, () ->
                mCm.registerNetworkCallback(r, PendingIntent.getService(
                mCm.registerNetworkCallback(r, PendingIntent.getService(
                    mServiceContext, 0, new Intent(), 0));
                        mServiceContext, 0, new Intent(), 0)));
            fail("Expected SecurityException filing a callback with signal strength");
        } catch (SecurityException expected) {
            // expected
        }


        // Requesting a Network with signal strength should get IllegalArgumentException.
        // Requesting a Network with signal strength should get IllegalArgumentException.
        try {
        assertThrows(IllegalArgumentException.class, () ->
            mCm.requestNetwork(r, new NetworkCallback());
                mCm.requestNetwork(r, new NetworkCallback()));
            fail("Expected IllegalArgumentException filing a request with signal strength");
        } catch (IllegalArgumentException expected) {
            // expected
        }


        try {
        assertThrows(IllegalArgumentException.class, () ->
                mCm.requestNetwork(r, PendingIntent.getService(
                mCm.requestNetwork(r, PendingIntent.getService(
                    mServiceContext, 0, new Intent(), 0));
                        mServiceContext, 0, new Intent(), 0)));
            fail("Expected IllegalArgumentException filing a request with signal strength");
        } catch (IllegalArgumentException expected) {
            // expected
        }
    }
    }


    @Test
    @Test
@@ -4698,25 +4669,20 @@ public class ConnectivityServiceTest {
        }
        }


        // Test that the limit is enforced when MAX_REQUESTS simultaneous requests are added.
        // Test that the limit is enforced when MAX_REQUESTS simultaneous requests are added.
        try {
        assertThrows(TooManyRequestsException.class, () ->
            mCm.requestNetwork(networkRequest, new NetworkCallback());
                mCm.requestNetwork(networkRequest, new NetworkCallback())
            fail("Registering " + MAX_REQUESTS + " network requests did not throw exception");
        );
        } catch (TooManyRequestsException expected) {}
        assertThrows(TooManyRequestsException.class, () ->
        try {
                mCm.registerNetworkCallback(networkRequest, new NetworkCallback())
            mCm.registerNetworkCallback(networkRequest, new NetworkCallback());
        );
            fail("Registering " + MAX_REQUESTS + " network callbacks did not throw exception");
        assertThrows(TooManyRequestsException.class, () ->
        } catch (TooManyRequestsException expected) {}
        try {
                mCm.requestNetwork(networkRequest,
                mCm.requestNetwork(networkRequest,
                PendingIntent.getBroadcast(mContext, 0, new Intent("c"), 0));
                        PendingIntent.getBroadcast(mContext, 0, new Intent("c"), 0))
            fail("Registering " + MAX_REQUESTS + " PendingIntent requests did not throw exception");
        );
        } catch (TooManyRequestsException expected) {}
        assertThrows(TooManyRequestsException.class, () ->
        try {
                mCm.registerNetworkCallback(networkRequest,
                mCm.registerNetworkCallback(networkRequest,
                PendingIntent.getBroadcast(mContext, 0, new Intent("d"), 0));
                        PendingIntent.getBroadcast(mContext, 0, new Intent("d"), 0))
            fail("Registering " + MAX_REQUESTS
        );
                    + " PendingIntent callbacks did not throw exception");
        } catch (TooManyRequestsException expected) {}


        for (Object o : registered) {
        for (Object o : registered) {
            if (o instanceof NetworkCallback) {
            if (o instanceof NetworkCallback) {