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

Commit a3909e05 authored by Roland Levillain's avatar Roland Levillain Committed by android-build-merger
Browse files

Merge "Revert "ConnectivityServiceTest: eliminate remaining sleep()"" am: 1e362452

am: 962f1842

Change-Id: I3e1c31d878b8f2899a3ff8b88ab565eb7856d477
parents 2a7985a6 962f1842
Loading
Loading
Loading
Loading
+24 −9
Original line number Diff line number Diff line
@@ -2807,17 +2807,19 @@ public class ConnectivityServiceTest extends AndroidTestCase {
        NetworkRequest nr = new NetworkRequest.Builder().addTransportType(
                NetworkCapabilities.TRANSPORT_WIFI).build();
        final TestNetworkCallback networkCallback = new TestNetworkCallback();
        final int requestTimeoutMs = 50;
        final int requestTimeoutMs = 100;
        mCm.requestNetwork(nr, networkCallback, requestTimeoutMs);

        mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
        mWiFiNetworkAgent.connect(false);
        final int assertTimeoutMs = 100;
        final int assertTimeoutMs = 150;
        networkCallback.expectAvailableCallbacks(mWiFiNetworkAgent, false, assertTimeoutMs);
        sleepFor(20);
        mWiFiNetworkAgent.disconnect();
        networkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);

        // Validate that UNAVAILABLE is not called
        // pass timeout and validate that UNAVAILABLE is not called
        sleepFor(100);
        networkCallback.assertNoCallback();
    }

@@ -2844,20 +2846,24 @@ public class ConnectivityServiceTest extends AndroidTestCase {
    }

    /**
     * Validate that when a network request is unregistered (cancelled), no posterior event can
     * trigger the callback.
     * Validate that when a network request is unregistered (cancelled) the time-out for that
     * request doesn't trigger the onUnavailable() callback.
     */
    @SmallTest
    public void testNoCallbackAfterUnregisteredNetworkRequest() {
    public void testTimedoutAfterUnregisteredNetworkRequest() {
        NetworkRequest nr = new NetworkRequest.Builder().addTransportType(
                NetworkCapabilities.TRANSPORT_WIFI).build();
        final TestNetworkCallback networkCallback = new TestNetworkCallback();
        final int timeoutMs = 10;

        mCm.requestNetwork(nr, networkCallback, timeoutMs);

        // remove request
        mCm.unregisterNetworkCallback(networkCallback);
        // Regardless of the timeout, unregistering the callback in ConnectivityManager ensures
        // that this callback will not be called.

        // pass timeout and validate that no callbacks
        // Note: doesn't validate that nothing called from CS since even if called the CM already
        // unregisters the callback and won't pass it through!
        sleepFor(15);
        networkCallback.assertNoCallback();

        // create a network satisfying request - validate that request not triggered
@@ -3359,4 +3365,13 @@ public class ConnectivityServiceTest extends AndroidTestCase {
        assertEquals(String.format("expected array of length %s, but length was %s for %s",
                expected, length, Arrays.toString(got)), expected, length);
    }

    /* test utilities */
    // TODO: eliminate all usages of sleepFor and replace by proper timeouts/waitForIdle.
    static private void sleepFor(int ms) {
        try {
            Thread.sleep(ms);
        } catch (InterruptedException e) {
        }
    }
}