Merge "ConnectivityServiceTest: eliminate remaining sleep()"

This commit is contained in:
Treehugger Robot
2017-07-04 09:25:53 +00:00
committed by Gerrit Code Review

View File

@@ -2803,19 +2803,17 @@ public class ConnectivityServiceTest extends AndroidTestCase {
NetworkRequest nr = new NetworkRequest.Builder().addTransportType( NetworkRequest nr = new NetworkRequest.Builder().addTransportType(
NetworkCapabilities.TRANSPORT_WIFI).build(); NetworkCapabilities.TRANSPORT_WIFI).build();
final TestNetworkCallback networkCallback = new TestNetworkCallback(); final TestNetworkCallback networkCallback = new TestNetworkCallback();
final int requestTimeoutMs = 100; final int requestTimeoutMs = 50;
mCm.requestNetwork(nr, networkCallback, requestTimeoutMs); mCm.requestNetwork(nr, networkCallback, requestTimeoutMs);
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
mWiFiNetworkAgent.connect(false); mWiFiNetworkAgent.connect(false);
final int assertTimeoutMs = 150; final int assertTimeoutMs = 100;
networkCallback.expectAvailableCallbacks(mWiFiNetworkAgent, false, assertTimeoutMs); networkCallback.expectAvailableCallbacks(mWiFiNetworkAgent, false, assertTimeoutMs);
sleepFor(20);
mWiFiNetworkAgent.disconnect(); mWiFiNetworkAgent.disconnect();
networkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent); networkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
// pass timeout and validate that UNAVAILABLE is not called // Validate that UNAVAILABLE is not called
sleepFor(100);
networkCallback.assertNoCallback(); networkCallback.assertNoCallback();
} }
@@ -2842,24 +2840,20 @@ public class ConnectivityServiceTest extends AndroidTestCase {
} }
/** /**
* Validate that when a network request is unregistered (cancelled) the time-out for that * Validate that when a network request is unregistered (cancelled), no posterior event can
* request doesn't trigger the onUnavailable() callback. * trigger the callback.
*/ */
@SmallTest @SmallTest
public void testTimedoutAfterUnregisteredNetworkRequest() { public void testNoCallbackAfterUnregisteredNetworkRequest() {
NetworkRequest nr = new NetworkRequest.Builder().addTransportType( NetworkRequest nr = new NetworkRequest.Builder().addTransportType(
NetworkCapabilities.TRANSPORT_WIFI).build(); NetworkCapabilities.TRANSPORT_WIFI).build();
final TestNetworkCallback networkCallback = new TestNetworkCallback(); final TestNetworkCallback networkCallback = new TestNetworkCallback();
final int timeoutMs = 10; final int timeoutMs = 10;
mCm.requestNetwork(nr, networkCallback, timeoutMs); mCm.requestNetwork(nr, networkCallback, timeoutMs);
// remove request
mCm.unregisterNetworkCallback(networkCallback); mCm.unregisterNetworkCallback(networkCallback);
// Regardless of the timeout, unregistering the callback in ConnectivityManager ensures
// pass timeout and validate that no callbacks // that this callback will not be called.
// 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(); networkCallback.assertNoCallback();
// create a network satisfying request - validate that request not triggered // create a network satisfying request - validate that request not triggered
@@ -3361,13 +3355,4 @@ public class ConnectivityServiceTest extends AndroidTestCase {
assertEquals(String.format("expected array of length %s, but length was %s for %s", assertEquals(String.format("expected array of length %s, but length was %s for %s",
expected, length, Arrays.toString(got)), expected, length); 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) {
}
}
} }