More strictly check NetworkCapabilities callbacks.
This change more strictly accounts for onCapabilitiesChanged callbaks and their values. It exposes several cases where we the callbacks we send are spurious. Test: ConnectivityServiceTest continues to pass Change-Id: Ifb9b00b6f0cae48f8ed41a525100d1744b5f429b
This commit is contained in:
@@ -1381,39 +1381,75 @@ public class ConnectivityServiceTest {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
void expectAvailableCallbacks(
|
// Expects onAvailable and the callbacks that follow it. These are:
|
||||||
MockNetworkAgent agent, boolean expectSuspended, int timeoutMs) {
|
// - onSuspended, iff the network was suspended when the callbacks fire.
|
||||||
|
// - onCapabilitiesChanged.
|
||||||
|
// - onLinkPropertiesChanged.
|
||||||
|
//
|
||||||
|
// @param agent the network to expect the callbacks on.
|
||||||
|
// @param expectSuspended whether to expect a SUSPENDED callback.
|
||||||
|
// @param expectValidated the expected value of the VALIDATED capability in the
|
||||||
|
// onCapabilitiesChanged callback.
|
||||||
|
// @param timeoutMs how long to wait for the callbacks.
|
||||||
|
void expectAvailableCallbacks(MockNetworkAgent agent, boolean expectSuspended,
|
||||||
|
boolean expectValidated, int timeoutMs) {
|
||||||
expectCallback(CallbackState.AVAILABLE, agent, timeoutMs);
|
expectCallback(CallbackState.AVAILABLE, agent, timeoutMs);
|
||||||
if (expectSuspended) {
|
if (expectSuspended) {
|
||||||
expectCallback(CallbackState.SUSPENDED, agent, timeoutMs);
|
expectCallback(CallbackState.SUSPENDED, agent, timeoutMs);
|
||||||
}
|
}
|
||||||
expectCallback(CallbackState.NETWORK_CAPABILITIES, agent, timeoutMs);
|
if (expectValidated) {
|
||||||
|
expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, agent);
|
||||||
|
} else {
|
||||||
|
expectCapabilitiesWithout(NET_CAPABILITY_VALIDATED, agent);
|
||||||
|
}
|
||||||
expectCallback(CallbackState.LINK_PROPERTIES, agent, timeoutMs);
|
expectCallback(CallbackState.LINK_PROPERTIES, agent, timeoutMs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void expectAvailableCallbacks(MockNetworkAgent agent) {
|
// Expects the available callbacks (validated), plus onSuspended.
|
||||||
expectAvailableCallbacks(agent, false, TIMEOUT_MS);
|
void expectAvailableAndSuspendedCallbacks(MockNetworkAgent agent, boolean expectValidated) {
|
||||||
|
expectAvailableCallbacks(agent, true, expectValidated, TIMEOUT_MS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void expectAvailableAndSuspendedCallbacks(MockNetworkAgent agent) {
|
void expectAvailableCallbacksValidated(MockNetworkAgent agent) {
|
||||||
expectAvailableCallbacks(agent, true, TIMEOUT_MS);
|
expectAvailableCallbacks(agent, false, true, TIMEOUT_MS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void expectAvailableAndValidatedCallbacks(MockNetworkAgent agent) {
|
void expectAvailableCallbacksUnvalidated(MockNetworkAgent agent) {
|
||||||
expectAvailableCallbacks(agent, false, TIMEOUT_MS);
|
expectAvailableCallbacks(agent, false, false, TIMEOUT_MS);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Expects the available callbacks (where the onCapabilitiesChanged must contain the
|
||||||
|
// VALIDATED capability), plus another onCapabilitiesChanged which is identical to the
|
||||||
|
// one we just sent.
|
||||||
|
// TODO: this is likely a bug. Fix it and remove this method.
|
||||||
|
void expectAvailableDoubleValidatedCallbacks(MockNetworkAgent agent) {
|
||||||
|
expectCallback(CallbackState.AVAILABLE, agent, TIMEOUT_MS);
|
||||||
|
NetworkCapabilities nc1 = expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, agent);
|
||||||
|
expectCallback(CallbackState.LINK_PROPERTIES, agent, TIMEOUT_MS);
|
||||||
|
NetworkCapabilities nc2 = expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, agent);
|
||||||
|
assertEquals(nc1, nc2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Expects the available callbacks where the onCapabilitiesChanged must not have validated,
|
||||||
|
// then expects another onCapabilitiesChanged that has the validated bit set. This is used
|
||||||
|
// when a network connects and satisfies a callback, and then immediately validates.
|
||||||
|
void expectAvailableThenValidatedCallbacks(MockNetworkAgent agent) {
|
||||||
|
expectAvailableCallbacksUnvalidated(agent);
|
||||||
expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, agent);
|
expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, agent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void expectCapabilitiesWith(int capability, MockNetworkAgent agent) {
|
NetworkCapabilities expectCapabilitiesWith(int capability, MockNetworkAgent agent) {
|
||||||
CallbackInfo cbi = expectCallback(CallbackState.NETWORK_CAPABILITIES, agent);
|
CallbackInfo cbi = expectCallback(CallbackState.NETWORK_CAPABILITIES, agent);
|
||||||
NetworkCapabilities nc = (NetworkCapabilities) cbi.arg;
|
NetworkCapabilities nc = (NetworkCapabilities) cbi.arg;
|
||||||
assertTrue(nc.hasCapability(capability));
|
assertTrue(nc.hasCapability(capability));
|
||||||
|
return nc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void expectCapabilitiesWithout(int capability, MockNetworkAgent agent) {
|
NetworkCapabilities expectCapabilitiesWithout(int capability, MockNetworkAgent agent) {
|
||||||
CallbackInfo cbi = expectCallback(CallbackState.NETWORK_CAPABILITIES, agent);
|
CallbackInfo cbi = expectCallback(CallbackState.NETWORK_CAPABILITIES, agent);
|
||||||
NetworkCapabilities nc = (NetworkCapabilities) cbi.arg;
|
NetworkCapabilities nc = (NetworkCapabilities) cbi.arg;
|
||||||
assertFalse(nc.hasCapability(capability));
|
assertFalse(nc.hasCapability(capability));
|
||||||
|
return nc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void assertNoCallback() {
|
void assertNoCallback() {
|
||||||
@@ -1450,8 +1486,8 @@ public class ConnectivityServiceTest {
|
|||||||
ConditionVariable cv = waitForConnectivityBroadcasts(1);
|
ConditionVariable cv = waitForConnectivityBroadcasts(1);
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(false);
|
mCellNetworkAgent.connect(false);
|
||||||
genericNetworkCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
genericNetworkCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
cellNetworkCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
cellNetworkCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
waitFor(cv);
|
waitFor(cv);
|
||||||
assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
|
assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
|
||||||
@@ -1465,8 +1501,8 @@ public class ConnectivityServiceTest {
|
|||||||
cv = waitForConnectivityBroadcasts(2);
|
cv = waitForConnectivityBroadcasts(2);
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(false);
|
mWiFiNetworkAgent.connect(false);
|
||||||
genericNetworkCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
genericNetworkCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
wifiNetworkCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
wifiNetworkCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
waitFor(cv);
|
waitFor(cv);
|
||||||
assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
|
assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
|
||||||
@@ -1489,8 +1525,8 @@ public class ConnectivityServiceTest {
|
|||||||
// Test validated networks
|
// Test validated networks
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
genericNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
genericNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
cellNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
|
assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
|
||||||
|
|
||||||
@@ -1502,10 +1538,10 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
genericNetworkCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
genericNetworkCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
genericNetworkCallback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
genericNetworkCallback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
genericNetworkCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
genericNetworkCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
||||||
wifiNetworkCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
wifiNetworkCallback.expectAvailableThenValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
cellNetworkCallback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
cellNetworkCallback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
|
assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
|
||||||
@@ -1541,32 +1577,32 @@ public class ConnectivityServiceTest {
|
|||||||
mEthernetNetworkAgent.addCapability(NET_CAPABILITY_NOT_METERED);
|
mEthernetNetworkAgent.addCapability(NET_CAPABILITY_NOT_METERED);
|
||||||
|
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
callback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
callback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
// We get AVAILABLE on wifi when wifi connects and satisfies our unmetered request.
|
// We get AVAILABLE on wifi when wifi connects and satisfies our unmetered request.
|
||||||
// We then get LOSING when wifi validates and cell is outscored.
|
// We then get LOSING when wifi validates and cell is outscored.
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
// TODO: Investigate sending validated before losing.
|
// TODO: Investigate sending validated before losing.
|
||||||
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
mEthernetNetworkAgent.connect(true);
|
mEthernetNetworkAgent.connect(true);
|
||||||
callback.expectAvailableCallbacks(mEthernetNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mEthernetNetworkAgent);
|
||||||
// TODO: Investigate sending validated before losing.
|
// TODO: Investigate sending validated before losing.
|
||||||
callback.expectCallback(CallbackState.LOSING, mWiFiNetworkAgent);
|
callback.expectCallback(CallbackState.LOSING, mWiFiNetworkAgent);
|
||||||
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mEthernetNetworkAgent);
|
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mEthernetNetworkAgent);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mEthernetNetworkAgent);
|
defaultCallback.expectAvailableDoubleValidatedCallbacks(mEthernetNetworkAgent);
|
||||||
assertEquals(mEthernetNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mEthernetNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
mEthernetNetworkAgent.disconnect();
|
mEthernetNetworkAgent.disconnect();
|
||||||
callback.expectCallback(CallbackState.LOST, mEthernetNetworkAgent);
|
callback.expectCallback(CallbackState.LOST, mEthernetNetworkAgent);
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mEthernetNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mEthernetNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
MockNetworkAgent oldNetwork, newNetwork;
|
MockNetworkAgent oldNetwork, newNetwork;
|
||||||
@@ -1583,7 +1619,7 @@ public class ConnectivityServiceTest {
|
|||||||
callback.expectCallback(CallbackState.LOSING, oldNetwork);
|
callback.expectCallback(CallbackState.LOSING, oldNetwork);
|
||||||
// TODO: should we send an AVAILABLE callback to newNetwork, to indicate that it is no
|
// TODO: should we send an AVAILABLE callback to newNetwork, to indicate that it is no
|
||||||
// longer lingering?
|
// longer lingering?
|
||||||
defaultCallback.expectAvailableCallbacks(newNetwork);
|
defaultCallback.expectAvailableCallbacksValidated(newNetwork);
|
||||||
assertEquals(newNetwork.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(newNetwork.getNetwork(), mCm.getActiveNetwork());
|
||||||
}
|
}
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
@@ -1603,7 +1639,7 @@ public class ConnectivityServiceTest {
|
|||||||
// Disconnect our test networks.
|
// Disconnect our test networks.
|
||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
mCellNetworkAgent.disconnect();
|
mCellNetworkAgent.disconnect();
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
||||||
|
|
||||||
@@ -1619,22 +1655,22 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(false); // Score: 10
|
mCellNetworkAgent.connect(false); // Score: 10
|
||||||
callback.expectAvailableCallbacks(mCellNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
// Bring up wifi with a score of 20.
|
// Bring up wifi with a score of 20.
|
||||||
// Cell stays up because it would satisfy the default request if it validated.
|
// Cell stays up because it would satisfy the default request if it validated.
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(false); // Score: 20
|
mWiFiNetworkAgent.connect(false); // Score: 20
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
// Bring up wifi with a score of 70.
|
// Bring up wifi with a score of 70.
|
||||||
@@ -1642,33 +1678,33 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.adjustScore(50);
|
mWiFiNetworkAgent.adjustScore(50);
|
||||||
mWiFiNetworkAgent.connect(false); // Score: 70
|
mWiFiNetworkAgent.connect(false); // Score: 70
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
// Tear down wifi.
|
// Tear down wifi.
|
||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
// Bring up wifi, then validate it. Previous versions would immediately tear down cell, but
|
// Bring up wifi, then validate it. Previous versions would immediately tear down cell, but
|
||||||
// it's arguably correct to linger it, since it was the default network before it validated.
|
// it's arguably correct to linger it, since it was the default network before it validated.
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
// TODO: Investigate sending validated before losing.
|
// TODO: Investigate sending validated before losing.
|
||||||
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableThenValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
|
|
||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
mCellNetworkAgent.disconnect();
|
mCellNetworkAgent.disconnect();
|
||||||
callback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
callback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
||||||
@@ -1676,12 +1712,12 @@ public class ConnectivityServiceTest {
|
|||||||
// If a network is lingering, and we add and remove a request from it, resume lingering.
|
// If a network is lingering, and we add and remove a request from it, resume lingering.
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
callback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
callback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
// TODO: Investigate sending validated before losing.
|
// TODO: Investigate sending validated before losing.
|
||||||
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
||||||
@@ -1700,7 +1736,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
|
|
||||||
// Cell is now the default network. Pin it with a cell-specific request.
|
// Cell is now the default network. Pin it with a cell-specific request.
|
||||||
noopCallback = new NetworkCallback(); // Can't reuse NetworkCallbacks. http://b/20701525
|
noopCallback = new NetworkCallback(); // Can't reuse NetworkCallbacks. http://b/20701525
|
||||||
@@ -1709,8 +1745,8 @@ public class ConnectivityServiceTest {
|
|||||||
// Now connect wifi, and expect it to become the default network.
|
// Now connect wifi, and expect it to become the default network.
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
callback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableThenValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
// The default request is lingering on cell, but nothing happens to cell, and we send no
|
// The default request is lingering on cell, but nothing happens to cell, and we send no
|
||||||
// callbacks for it, because it's kept up by cellRequest.
|
// callbacks for it, because it's kept up by cellRequest.
|
||||||
callback.assertNoCallback();
|
callback.assertNoCallback();
|
||||||
@@ -1726,14 +1762,14 @@ public class ConnectivityServiceTest {
|
|||||||
// Register a TRACK_DEFAULT request and check that it does not affect lingering.
|
// Register a TRACK_DEFAULT request and check that it does not affect lingering.
|
||||||
TestNetworkCallback trackDefaultCallback = new TestNetworkCallback();
|
TestNetworkCallback trackDefaultCallback = new TestNetworkCallback();
|
||||||
mCm.registerDefaultNetworkCallback(trackDefaultCallback);
|
mCm.registerDefaultNetworkCallback(trackDefaultCallback);
|
||||||
trackDefaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
trackDefaultCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
|
||||||
mEthernetNetworkAgent = new MockNetworkAgent(TRANSPORT_ETHERNET);
|
mEthernetNetworkAgent = new MockNetworkAgent(TRANSPORT_ETHERNET);
|
||||||
mEthernetNetworkAgent.connect(true);
|
mEthernetNetworkAgent.connect(true);
|
||||||
callback.expectAvailableCallbacks(mEthernetNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mEthernetNetworkAgent);
|
||||||
callback.expectCallback(CallbackState.LOSING, mWiFiNetworkAgent);
|
callback.expectCallback(CallbackState.LOSING, mWiFiNetworkAgent);
|
||||||
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mEthernetNetworkAgent);
|
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mEthernetNetworkAgent);
|
||||||
trackDefaultCallback.expectAvailableAndValidatedCallbacks(mEthernetNetworkAgent);
|
trackDefaultCallback.expectAvailableDoubleValidatedCallbacks(mEthernetNetworkAgent);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mEthernetNetworkAgent);
|
defaultCallback.expectAvailableDoubleValidatedCallbacks(mEthernetNetworkAgent);
|
||||||
|
|
||||||
// Let linger run its course.
|
// Let linger run its course.
|
||||||
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent, lingerTimeoutMs);
|
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent, lingerTimeoutMs);
|
||||||
@@ -1760,13 +1796,13 @@ public class ConnectivityServiceTest {
|
|||||||
// Bring up validated cell.
|
// Bring up validated cell.
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
callback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
callback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
|
|
||||||
// Bring up unvalidated wifi with explicitlySelected=true.
|
// Bring up unvalidated wifi with explicitlySelected=true.
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.explicitlySelected(false);
|
mWiFiNetworkAgent.explicitlySelected(false);
|
||||||
mWiFiNetworkAgent.connect(false);
|
mWiFiNetworkAgent.connect(false);
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
|
|
||||||
// Cell Remains the default.
|
// Cell Remains the default.
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
@@ -1789,7 +1825,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.explicitlySelected(false);
|
mWiFiNetworkAgent.explicitlySelected(false);
|
||||||
mWiFiNetworkAgent.connect(false);
|
mWiFiNetworkAgent.connect(false);
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
|
|
||||||
// If the user chooses no on the "No Internet access, stay connected?" dialog, we ask the
|
// If the user chooses no on the "No Internet access, stay connected?" dialog, we ask the
|
||||||
// network to disconnect.
|
// network to disconnect.
|
||||||
@@ -1800,7 +1836,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.explicitlySelected(false);
|
mWiFiNetworkAgent.explicitlySelected(false);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
@@ -1809,7 +1845,7 @@ public class ConnectivityServiceTest {
|
|||||||
// TODO: fix this.
|
// TODO: fix this.
|
||||||
mEthernetNetworkAgent = new MockNetworkAgent(TRANSPORT_ETHERNET);
|
mEthernetNetworkAgent = new MockNetworkAgent(TRANSPORT_ETHERNET);
|
||||||
mEthernetNetworkAgent.connect(true);
|
mEthernetNetworkAgent.connect(true);
|
||||||
callback.expectAvailableAndValidatedCallbacks(mEthernetNetworkAgent);
|
callback.expectAvailableThenValidatedCallbacks(mEthernetNetworkAgent);
|
||||||
assertEquals(mEthernetNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mEthernetNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
callback.assertNoCallback();
|
callback.assertNoCallback();
|
||||||
|
|
||||||
@@ -1982,7 +2018,7 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.addCapability(NET_CAPABILITY_MMS);
|
mCellNetworkAgent.addCapability(NET_CAPABILITY_MMS);
|
||||||
mCellNetworkAgent.connectWithoutInternet();
|
mCellNetworkAgent.connectWithoutInternet();
|
||||||
networkCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
networkCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
verifyActiveNetwork(TRANSPORT_WIFI);
|
verifyActiveNetwork(TRANSPORT_WIFI);
|
||||||
|
|
||||||
// Test releasing NetworkRequest disconnects cellular with MMS
|
// Test releasing NetworkRequest disconnects cellular with MMS
|
||||||
@@ -2011,7 +2047,7 @@ public class ConnectivityServiceTest {
|
|||||||
MockNetworkAgent mmsNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
MockNetworkAgent mmsNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mmsNetworkAgent.addCapability(NET_CAPABILITY_MMS);
|
mmsNetworkAgent.addCapability(NET_CAPABILITY_MMS);
|
||||||
mmsNetworkAgent.connectWithoutInternet();
|
mmsNetworkAgent.connectWithoutInternet();
|
||||||
networkCallback.expectAvailableCallbacks(mmsNetworkAgent);
|
networkCallback.expectAvailableCallbacksUnvalidated(mmsNetworkAgent);
|
||||||
verifyActiveNetwork(TRANSPORT_CELLULAR);
|
verifyActiveNetwork(TRANSPORT_CELLULAR);
|
||||||
|
|
||||||
// Test releasing MMS NetworkRequest does not disconnect main cellular NetworkAgent
|
// Test releasing MMS NetworkRequest does not disconnect main cellular NetworkAgent
|
||||||
@@ -2038,7 +2074,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
String firstRedirectUrl = "http://example.com/firstPath";
|
String firstRedirectUrl = "http://example.com/firstPath";
|
||||||
mWiFiNetworkAgent.connectWithCaptivePortal(firstRedirectUrl);
|
mWiFiNetworkAgent.connectWithCaptivePortal(firstRedirectUrl);
|
||||||
captivePortalCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
captivePortalCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.waitForRedirectUrl(), firstRedirectUrl);
|
assertEquals(mWiFiNetworkAgent.waitForRedirectUrl(), firstRedirectUrl);
|
||||||
|
|
||||||
// Take down network.
|
// Take down network.
|
||||||
@@ -2051,7 +2087,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
String secondRedirectUrl = "http://example.com/secondPath";
|
String secondRedirectUrl = "http://example.com/secondPath";
|
||||||
mWiFiNetworkAgent.connectWithCaptivePortal(secondRedirectUrl);
|
mWiFiNetworkAgent.connectWithCaptivePortal(secondRedirectUrl);
|
||||||
captivePortalCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
captivePortalCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.waitForRedirectUrl(), secondRedirectUrl);
|
assertEquals(mWiFiNetworkAgent.waitForRedirectUrl(), secondRedirectUrl);
|
||||||
|
|
||||||
// Make captive portal disappear then revalidate.
|
// Make captive portal disappear then revalidate.
|
||||||
@@ -2061,9 +2097,7 @@ public class ConnectivityServiceTest {
|
|||||||
captivePortalCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
captivePortalCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
|
|
||||||
// Expect NET_CAPABILITY_VALIDATED onAvailable callback.
|
// Expect NET_CAPABILITY_VALIDATED onAvailable callback.
|
||||||
validatedCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
validatedCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
// TODO: Investigate only sending available callbacks.
|
|
||||||
validatedCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
|
||||||
|
|
||||||
// Break network connectivity.
|
// Break network connectivity.
|
||||||
// Expect NET_CAPABILITY_VALIDATED onLost callback.
|
// Expect NET_CAPABILITY_VALIDATED onLost callback.
|
||||||
@@ -2087,7 +2121,7 @@ public class ConnectivityServiceTest {
|
|||||||
// Bring up wifi.
|
// Bring up wifi.
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
validatedCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
validatedCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
Network wifiNetwork = mWiFiNetworkAgent.getNetwork();
|
Network wifiNetwork = mWiFiNetworkAgent.getNetwork();
|
||||||
|
|
||||||
// Check that calling startCaptivePortalApp does nothing.
|
// Check that calling startCaptivePortalApp does nothing.
|
||||||
@@ -2098,7 +2132,7 @@ public class ConnectivityServiceTest {
|
|||||||
// Turn into a captive portal.
|
// Turn into a captive portal.
|
||||||
mWiFiNetworkAgent.getWrappedNetworkMonitor().gen204ProbeResult = 302;
|
mWiFiNetworkAgent.getWrappedNetworkMonitor().gen204ProbeResult = 302;
|
||||||
mCm.reportNetworkConnectivity(wifiNetwork, false);
|
mCm.reportNetworkConnectivity(wifiNetwork, false);
|
||||||
captivePortalCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
captivePortalCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
validatedCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
validatedCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
|
|
||||||
// Check that startCaptivePortalApp sends the expected intent.
|
// Check that startCaptivePortalApp sends the expected intent.
|
||||||
@@ -2111,7 +2145,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent.getWrappedNetworkMonitor().gen204ProbeResult = 204;
|
mWiFiNetworkAgent.getWrappedNetworkMonitor().gen204ProbeResult = 204;
|
||||||
CaptivePortal c = (CaptivePortal) intent.getExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL);
|
CaptivePortal c = (CaptivePortal) intent.getExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL);
|
||||||
c.reportCaptivePortalDismissed();
|
c.reportCaptivePortalDismissed();
|
||||||
validatedCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
validatedCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
|
||||||
captivePortalCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
captivePortalCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
|
|
||||||
mCm.unregisterNetworkCallback(validatedCallback);
|
mCm.unregisterNetworkCallback(validatedCallback);
|
||||||
@@ -2154,7 +2188,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent.connectWithCaptivePortal(secondRedirectUrl);
|
mWiFiNetworkAgent.connectWithCaptivePortal(secondRedirectUrl);
|
||||||
|
|
||||||
// Expect NET_CAPABILITY_VALIDATED onAvailable callback.
|
// Expect NET_CAPABILITY_VALIDATED onAvailable callback.
|
||||||
validatedCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
validatedCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
|
||||||
// But there should be no CaptivePortal callback.
|
// But there should be no CaptivePortal callback.
|
||||||
captivePortalCallback.assertNoCallback();
|
captivePortalCallback.assertNoCallback();
|
||||||
}
|
}
|
||||||
@@ -2192,14 +2226,14 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(false);
|
mWiFiNetworkAgent.connect(false);
|
||||||
cEmpty1.expectAvailableCallbacks(mWiFiNetworkAgent);
|
cEmpty1.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
cEmpty2.expectAvailableCallbacks(mWiFiNetworkAgent);
|
cEmpty2.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
cEmpty3.expectAvailableCallbacks(mWiFiNetworkAgent);
|
cEmpty3.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
cEmpty4.expectAvailableCallbacks(mWiFiNetworkAgent);
|
cEmpty4.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertNoCallbacks(cFoo, cBar);
|
assertNoCallbacks(cFoo, cBar);
|
||||||
|
|
||||||
mWiFiNetworkAgent.setNetworkSpecifier(new StringNetworkSpecifier("foo"));
|
mWiFiNetworkAgent.setNetworkSpecifier(new StringNetworkSpecifier("foo"));
|
||||||
cFoo.expectAvailableCallbacks(mWiFiNetworkAgent);
|
cFoo.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
for (TestNetworkCallback c: emptyCallbacks) {
|
for (TestNetworkCallback c: emptyCallbacks) {
|
||||||
c.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
|
c.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
|
||||||
}
|
}
|
||||||
@@ -2208,7 +2242,7 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
mWiFiNetworkAgent.setNetworkSpecifier(new StringNetworkSpecifier("bar"));
|
mWiFiNetworkAgent.setNetworkSpecifier(new StringNetworkSpecifier("bar"));
|
||||||
cFoo.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
cFoo.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
cBar.expectAvailableCallbacks(mWiFiNetworkAgent);
|
cBar.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
for (TestNetworkCallback c: emptyCallbacks) {
|
for (TestNetworkCallback c: emptyCallbacks) {
|
||||||
c.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
|
c.expectCallback(CallbackState.NETWORK_CAPABILITIES, mWiFiNetworkAgent);
|
||||||
}
|
}
|
||||||
@@ -2337,14 +2371,14 @@ public class ConnectivityServiceTest {
|
|||||||
// Bring up cell and expect CALLBACK_AVAILABLE.
|
// Bring up cell and expect CALLBACK_AVAILABLE.
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
cellNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
defaultNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
defaultNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
|
|
||||||
// Bring up wifi and expect CALLBACK_AVAILABLE.
|
// Bring up wifi and expect CALLBACK_AVAILABLE.
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
defaultNetworkCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
defaultNetworkCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
|
|
||||||
// Bring down cell. Expect no default network callback, since it wasn't the default.
|
// Bring down cell. Expect no default network callback, since it wasn't the default.
|
||||||
mCellNetworkAgent.disconnect();
|
mCellNetworkAgent.disconnect();
|
||||||
@@ -2354,7 +2388,7 @@ public class ConnectivityServiceTest {
|
|||||||
// Bring up cell. Expect no default network callback, since it won't be the default.
|
// Bring up cell. Expect no default network callback, since it won't be the default.
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
cellNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
defaultNetworkCallback.assertNoCallback();
|
defaultNetworkCallback.assertNoCallback();
|
||||||
|
|
||||||
// Bring down wifi. Expect the default network callback to notified of LOST wifi
|
// Bring down wifi. Expect the default network callback to notified of LOST wifi
|
||||||
@@ -2362,7 +2396,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
defaultNetworkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
defaultNetworkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
defaultNetworkCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
mCellNetworkAgent.disconnect();
|
mCellNetworkAgent.disconnect();
|
||||||
cellNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
cellNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
||||||
defaultNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
defaultNetworkCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
||||||
@@ -2383,7 +2417,7 @@ public class ConnectivityServiceTest {
|
|||||||
// We should get onAvailable(), onCapabilitiesChanged(), and
|
// We should get onAvailable(), onCapabilitiesChanged(), and
|
||||||
// onLinkPropertiesChanged() in rapid succession. Additionally, we
|
// onLinkPropertiesChanged() in rapid succession. Additionally, we
|
||||||
// should get onCapabilitiesChanged() when the mobile network validates.
|
// should get onCapabilitiesChanged() when the mobile network validates.
|
||||||
cellNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
|
|
||||||
// Update LinkProperties.
|
// Update LinkProperties.
|
||||||
@@ -2404,7 +2438,7 @@ public class ConnectivityServiceTest {
|
|||||||
mCm.registerDefaultNetworkCallback(dfltNetworkCallback);
|
mCm.registerDefaultNetworkCallback(dfltNetworkCallback);
|
||||||
// We should get onAvailable(), onCapabilitiesChanged(), onLinkPropertiesChanged(),
|
// We should get onAvailable(), onCapabilitiesChanged(), onLinkPropertiesChanged(),
|
||||||
// as well as onNetworkSuspended() in rapid succession.
|
// as well as onNetworkSuspended() in rapid succession.
|
||||||
dfltNetworkCallback.expectAvailableAndSuspendedCallbacks(mCellNetworkAgent);
|
dfltNetworkCallback.expectAvailableAndSuspendedCallbacks(mCellNetworkAgent, true);
|
||||||
dfltNetworkCallback.assertNoCallback();
|
dfltNetworkCallback.assertNoCallback();
|
||||||
|
|
||||||
mCm.unregisterNetworkCallback(dfltNetworkCallback);
|
mCm.unregisterNetworkCallback(dfltNetworkCallback);
|
||||||
@@ -2444,18 +2478,18 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
callback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
callback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
fgCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
fgCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
assertTrue(isForegroundNetwork(mCellNetworkAgent));
|
assertTrue(isForegroundNetwork(mCellNetworkAgent));
|
||||||
|
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
|
|
||||||
// When wifi connects, cell lingers.
|
// When wifi connects, cell lingers.
|
||||||
callback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
callback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
callback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
||||||
fgCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
fgCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
fgCallback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
fgCallback.expectCallback(CallbackState.LOSING, mCellNetworkAgent);
|
||||||
fgCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
fgCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
||||||
assertTrue(isForegroundNetwork(mCellNetworkAgent));
|
assertTrue(isForegroundNetwork(mCellNetworkAgent));
|
||||||
@@ -2479,8 +2513,8 @@ public class ConnectivityServiceTest {
|
|||||||
// is currently delivered before the onAvailable() callbacks.
|
// is currently delivered before the onAvailable() callbacks.
|
||||||
// TODO: Fix this.
|
// TODO: Fix this.
|
||||||
cellCallback.expectCapabilitiesWith(NET_CAPABILITY_FOREGROUND, mCellNetworkAgent);
|
cellCallback.expectCapabilitiesWith(NET_CAPABILITY_FOREGROUND, mCellNetworkAgent);
|
||||||
cellCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
cellCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
fgCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
fgCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
// Expect a network capabilities update with FOREGROUND, because the most recent
|
// Expect a network capabilities update with FOREGROUND, because the most recent
|
||||||
// request causes its state to change.
|
// request causes its state to change.
|
||||||
callback.expectCapabilitiesWith(NET_CAPABILITY_FOREGROUND, mCellNetworkAgent);
|
callback.expectCapabilitiesWith(NET_CAPABILITY_FOREGROUND, mCellNetworkAgent);
|
||||||
@@ -2500,7 +2534,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
callback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
fgCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
fgCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
fgCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
fgCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
assertTrue(isForegroundNetwork(mCellNetworkAgent));
|
assertTrue(isForegroundNetwork(mCellNetworkAgent));
|
||||||
|
|
||||||
mCm.unregisterNetworkCallback(callback);
|
mCm.unregisterNetworkCallback(callback);
|
||||||
@@ -2640,7 +2674,7 @@ public class ConnectivityServiceTest {
|
|||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
testFactory.expectAddRequests(2); // Because the cell request changes score twice.
|
testFactory.expectAddRequests(2); // Because the cell request changes score twice.
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
cellNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
testFactory.waitForNetworkRequests(2);
|
testFactory.waitForNetworkRequests(2);
|
||||||
assertFalse(testFactory.getMyStartRequested()); // Because the cell network outscores us.
|
assertFalse(testFactory.getMyStartRequested()); // Because the cell network outscores us.
|
||||||
|
|
||||||
@@ -2731,16 +2765,15 @@ public class ConnectivityServiceTest {
|
|||||||
// Bring up validated cell.
|
// Bring up validated cell.
|
||||||
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR);
|
||||||
mCellNetworkAgent.connect(true);
|
mCellNetworkAgent.connect(true);
|
||||||
cellNetworkCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
cellNetworkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||||
Network cellNetwork = mCellNetworkAgent.getNetwork();
|
Network cellNetwork = mCellNetworkAgent.getNetwork();
|
||||||
|
|
||||||
// Bring up validated wifi.
|
// Bring up validated wifi.
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
validatedWifiCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
validatedWifiCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
validatedWifiCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
|
||||||
Network wifiNetwork = mWiFiNetworkAgent.getNetwork();
|
Network wifiNetwork = mWiFiNetworkAgent.getNetwork();
|
||||||
|
|
||||||
// Fail validation on wifi.
|
// Fail validation on wifi.
|
||||||
@@ -2761,18 +2794,18 @@ public class ConnectivityServiceTest {
|
|||||||
// that we switch back to cell.
|
// that we switch back to cell.
|
||||||
tracker.configRestrictsAvoidBadWifi = false;
|
tracker.configRestrictsAvoidBadWifi = false;
|
||||||
tracker.reevaluate();
|
tracker.reevaluate();
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
assertEquals(mCm.getActiveNetwork(), cellNetwork);
|
assertEquals(mCm.getActiveNetwork(), cellNetwork);
|
||||||
|
|
||||||
// Switch back to a restrictive carrier.
|
// Switch back to a restrictive carrier.
|
||||||
tracker.configRestrictsAvoidBadWifi = true;
|
tracker.configRestrictsAvoidBadWifi = true;
|
||||||
tracker.reevaluate();
|
tracker.reevaluate();
|
||||||
defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mCm.getActiveNetwork(), wifiNetwork);
|
assertEquals(mCm.getActiveNetwork(), wifiNetwork);
|
||||||
|
|
||||||
// Simulate the user selecting "switch" on the dialog, and check that we switch to cell.
|
// Simulate the user selecting "switch" on the dialog, and check that we switch to cell.
|
||||||
mCm.setAvoidUnvalidated(wifiNetwork);
|
mCm.setAvoidUnvalidated(wifiNetwork);
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
assertFalse(mCm.getNetworkCapabilities(wifiNetwork).hasCapability(
|
assertFalse(mCm.getNetworkCapabilities(wifiNetwork).hasCapability(
|
||||||
NET_CAPABILITY_VALIDATED));
|
NET_CAPABILITY_VALIDATED));
|
||||||
assertTrue(mCm.getNetworkCapabilities(cellNetwork).hasCapability(
|
assertTrue(mCm.getNetworkCapabilities(cellNetwork).hasCapability(
|
||||||
@@ -2783,9 +2816,8 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
defaultCallback.expectAvailableAndValidatedCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
validatedWifiCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
validatedWifiCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
|
||||||
validatedWifiCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
|
||||||
wifiNetwork = mWiFiNetworkAgent.getNetwork();
|
wifiNetwork = mWiFiNetworkAgent.getNetwork();
|
||||||
|
|
||||||
// Fail validation on wifi and expect the dialog to appear.
|
// Fail validation on wifi and expect the dialog to appear.
|
||||||
@@ -2799,7 +2831,7 @@ public class ConnectivityServiceTest {
|
|||||||
tracker.reevaluate();
|
tracker.reevaluate();
|
||||||
|
|
||||||
// We now switch to cell.
|
// We now switch to cell.
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
assertFalse(mCm.getNetworkCapabilities(wifiNetwork).hasCapability(
|
assertFalse(mCm.getNetworkCapabilities(wifiNetwork).hasCapability(
|
||||||
NET_CAPABILITY_VALIDATED));
|
NET_CAPABILITY_VALIDATED));
|
||||||
assertTrue(mCm.getNetworkCapabilities(cellNetwork).hasCapability(
|
assertTrue(mCm.getNetworkCapabilities(cellNetwork).hasCapability(
|
||||||
@@ -2810,17 +2842,17 @@ public class ConnectivityServiceTest {
|
|||||||
// We switch to wifi and then to cell.
|
// We switch to wifi and then to cell.
|
||||||
Settings.Global.putString(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, null);
|
Settings.Global.putString(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, null);
|
||||||
tracker.reevaluate();
|
tracker.reevaluate();
|
||||||
defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mCm.getActiveNetwork(), wifiNetwork);
|
assertEquals(mCm.getActiveNetwork(), wifiNetwork);
|
||||||
Settings.Global.putInt(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, 1);
|
Settings.Global.putInt(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, 1);
|
||||||
tracker.reevaluate();
|
tracker.reevaluate();
|
||||||
defaultCallback.expectAvailableCallbacks(mCellNetworkAgent);
|
defaultCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
assertEquals(mCm.getActiveNetwork(), cellNetwork);
|
assertEquals(mCm.getActiveNetwork(), cellNetwork);
|
||||||
|
|
||||||
// If cell goes down, we switch to wifi.
|
// If cell goes down, we switch to wifi.
|
||||||
mCellNetworkAgent.disconnect();
|
mCellNetworkAgent.disconnect();
|
||||||
defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
defaultCallback.expectCallback(CallbackState.LOST, mCellNetworkAgent);
|
||||||
defaultCallback.expectAvailableCallbacks(mWiFiNetworkAgent);
|
defaultCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
validatedWifiCallback.assertNoCallback();
|
validatedWifiCallback.assertNoCallback();
|
||||||
|
|
||||||
mCm.unregisterNetworkCallback(cellNetworkCallback);
|
mCm.unregisterNetworkCallback(cellNetworkCallback);
|
||||||
@@ -2862,7 +2894,7 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(false);
|
mWiFiNetworkAgent.connect(false);
|
||||||
networkCallback.expectAvailableCallbacks(mWiFiNetworkAgent, false, timeoutMs);
|
networkCallback.expectAvailableCallbacks(mWiFiNetworkAgent, false, false, timeoutMs);
|
||||||
|
|
||||||
// pass timeout and validate that UNAVAILABLE is not called
|
// pass timeout and validate that UNAVAILABLE is not called
|
||||||
networkCallback.assertNoCallback();
|
networkCallback.assertNoCallback();
|
||||||
@@ -2883,7 +2915,7 @@ public class ConnectivityServiceTest {
|
|||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
mWiFiNetworkAgent.connect(false);
|
mWiFiNetworkAgent.connect(false);
|
||||||
final int assertTimeoutMs = 100;
|
final int assertTimeoutMs = 100;
|
||||||
networkCallback.expectAvailableCallbacks(mWiFiNetworkAgent, false, assertTimeoutMs);
|
networkCallback.expectAvailableCallbacks(mWiFiNetworkAgent, false, false, assertTimeoutMs);
|
||||||
mWiFiNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
networkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
networkCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
|
|
||||||
@@ -3370,7 +3402,7 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
// Bring up wifi aware network.
|
// Bring up wifi aware network.
|
||||||
wifiAware.connect(false, false);
|
wifiAware.connect(false, false);
|
||||||
callback.expectAvailableCallbacks(wifiAware);
|
callback.expectAvailableCallbacksUnvalidated(wifiAware);
|
||||||
|
|
||||||
assertNull(mCm.getActiveNetworkInfo());
|
assertNull(mCm.getActiveNetworkInfo());
|
||||||
assertNull(mCm.getActiveNetwork());
|
assertNull(mCm.getActiveNetwork());
|
||||||
|
|||||||
Reference in New Issue
Block a user