Merge "Revert "ConnectivityServiceTest: eliminate remaining sleep()""
am: 1c5d788650
Change-Id: If210f213c7840c218d5e847667c7613d53f86661
This commit is contained in:
@@ -2807,17 +2807,19 @@ 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 = 50;
|
final int requestTimeoutMs = 100;
|
||||||
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 = 100;
|
final int assertTimeoutMs = 150;
|
||||||
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);
|
||||||
|
|
||||||
// Validate that UNAVAILABLE is not called
|
// pass timeout and validate that UNAVAILABLE is not called
|
||||||
|
sleepFor(100);
|
||||||
networkCallback.assertNoCallback();
|
networkCallback.assertNoCallback();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2844,20 +2846,24 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate that when a network request is unregistered (cancelled), no posterior event can
|
* Validate that when a network request is unregistered (cancelled) the time-out for that
|
||||||
* trigger the callback.
|
* request doesn't trigger the onUnavailable() callback.
|
||||||
*/
|
*/
|
||||||
@SmallTest
|
@SmallTest
|
||||||
public void testNoCallbackAfterUnregisteredNetworkRequest() {
|
public void testTimedoutAfterUnregisteredNetworkRequest() {
|
||||||
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
|
|
||||||
// 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();
|
networkCallback.assertNoCallback();
|
||||||
|
|
||||||
// create a network satisfying request - validate that request not triggered
|
// 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",
|
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) {
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user