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

Commit 451aac8c authored by Chalard Jean's avatar Chalard Jean Committed by android-build-merger
Browse files

Merge "Unify assertThrows" am: 978cca89 am: 3f21f946 am: e251c905

am: 987fd79f

Change-Id: Ic38d41b6803798f6119f3b3a87dc3b40f753307d
parents 4b05d199 987fd79f
Loading
Loading
Loading
Loading
+41 −75
Original line number Original line Diff line number Diff line
@@ -159,6 +159,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.Bundle;
import android.os.Bundle;
import android.os.ConditionVariable;
import android.os.ConditionVariable;
@@ -3128,24 +3129,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; }
@@ -3154,24 +3149,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();
@@ -3181,10 +3174,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
@@ -3213,12 +3203,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
@@ -3230,36 +3217,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
@@ -4730,25 +4701,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) {