Merge "Clean up for multiple validation result update"
am: 7a5b9c2d0a
Change-Id: Ia9986a70d01a4aae0fef647fe2e210f55f38b8dc
This commit is contained in:
@@ -683,9 +683,9 @@ public class NetworkMonitor extends StateMachine {
|
|||||||
public void enter() {
|
public void enter() {
|
||||||
maybeLogEvaluationResult(
|
maybeLogEvaluationResult(
|
||||||
networkEventType(validationStage(), EvaluationResult.VALIDATED));
|
networkEventType(validationStage(), EvaluationResult.VALIDATED));
|
||||||
// If the user has accepted that and HTTPS probing is disabled, then mark the network
|
// If the user has accepted partial connectivity and HTTPS probing is disabled, then
|
||||||
// as validated and partial so that settings can keep informing the user that the
|
// mark the network as validated and partial so that settings can keep informing the
|
||||||
// connection is limited.
|
// user that the connection is limited.
|
||||||
int result = NETWORK_VALIDATION_RESULT_VALID;
|
int result = NETWORK_VALIDATION_RESULT_VALID;
|
||||||
if (!mUseHttps && mAcceptPartialConnectivity) {
|
if (!mUseHttps && mAcceptPartialConnectivity) {
|
||||||
result |= NETWORK_VALIDATION_RESULT_PARTIAL;
|
result |= NETWORK_VALIDATION_RESULT_PARTIAL;
|
||||||
@@ -1054,6 +1054,11 @@ public class NetworkMonitor extends StateMachine {
|
|||||||
// TODO: Consider abandoning this state after a few attempts and
|
// TODO: Consider abandoning this state after a few attempts and
|
||||||
// transitioning back to EvaluatingState, to perhaps give ourselves
|
// transitioning back to EvaluatingState, to perhaps give ourselves
|
||||||
// the opportunity to (re)detect a captive portal or something.
|
// the opportunity to (re)detect a captive portal or something.
|
||||||
|
//
|
||||||
|
// TODO: distinguish between CMD_EVALUATE_PRIVATE_DNS messages that are caused by server
|
||||||
|
// lookup failures (which should continue to do exponential backoff) and
|
||||||
|
// CMD_EVALUATE_PRIVATE_DNS messages that are caused by user reconfiguration (which
|
||||||
|
// should be processed immediately.
|
||||||
sendMessageDelayed(CMD_EVALUATE_PRIVATE_DNS, mPrivateDnsReevalDelayMs);
|
sendMessageDelayed(CMD_EVALUATE_PRIVATE_DNS, mPrivateDnsReevalDelayMs);
|
||||||
mPrivateDnsReevalDelayMs *= 2;
|
mPrivateDnsReevalDelayMs *= 2;
|
||||||
if (mPrivateDnsReevalDelayMs > MAX_REEVALUATE_DELAY_MS) {
|
if (mPrivateDnsReevalDelayMs > MAX_REEVALUATE_DELAY_MS) {
|
||||||
|
|||||||
@@ -941,6 +941,10 @@ public class NetworkMonitorTest {
|
|||||||
.notifyNetworkTested(intCaptor.capture(), any());
|
.notifyNetworkTested(intCaptor.capture(), any());
|
||||||
List<Integer> intArgs = intCaptor.getAllValues();
|
List<Integer> intArgs = intCaptor.getAllValues();
|
||||||
|
|
||||||
|
// None of these exact values can be known in advance except for intArgs.get(0) because the
|
||||||
|
// HTTP and HTTPS probes race and the order in which they complete is non-deterministic.
|
||||||
|
// Thus, check only exact value for intArgs.get(0) and only check the validation result for
|
||||||
|
// the rest ones.
|
||||||
assertEquals(Integer.valueOf(NETWORK_VALIDATION_PROBE_DNS
|
assertEquals(Integer.valueOf(NETWORK_VALIDATION_PROBE_DNS
|
||||||
| NETWORK_VALIDATION_PROBE_FALLBACK | NETWORK_VALIDATION_RESULT_VALID),
|
| NETWORK_VALIDATION_PROBE_FALLBACK | NETWORK_VALIDATION_RESULT_VALID),
|
||||||
intArgs.get(0));
|
intArgs.get(0));
|
||||||
|
|||||||
@@ -615,7 +615,7 @@ public class ConnectivityServiceTest {
|
|||||||
private void onValidationRequested() {
|
private void onValidationRequested() {
|
||||||
try {
|
try {
|
||||||
if (mNmProvNotificationRequested
|
if (mNmProvNotificationRequested
|
||||||
&& mNmValidationResult == VALIDATION_RESULT_VALID) {
|
&& ((mNmValidationResult & NETWORK_VALIDATION_RESULT_VALID) != 0)) {
|
||||||
mNmCallbacks.hideProvisioningNotification();
|
mNmCallbacks.hideProvisioningNotification();
|
||||||
mNmProvNotificationRequested = false;
|
mNmProvNotificationRequested = false;
|
||||||
}
|
}
|
||||||
@@ -2781,10 +2781,10 @@ public class ConnectivityServiceTest {
|
|||||||
// Bring up a network with a captive portal.
|
// Bring up a network with a captive portal.
|
||||||
// Expect onAvailable callback of listen for NET_CAPABILITY_CAPTIVE_PORTAL.
|
// Expect onAvailable callback of listen for NET_CAPABILITY_CAPTIVE_PORTAL.
|
||||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||||
String firstRedirectUrl = "http://example.com/firstPath";
|
String redirectUrl = "http://android.com/path";
|
||||||
mWiFiNetworkAgent.connectWithCaptivePortal(firstRedirectUrl);
|
mWiFiNetworkAgent.connectWithCaptivePortal(redirectUrl);
|
||||||
captivePortalCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
captivePortalCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.waitForRedirectUrl(), firstRedirectUrl);
|
assertEquals(mWiFiNetworkAgent.waitForRedirectUrl(), redirectUrl);
|
||||||
|
|
||||||
// Check that startCaptivePortalApp sends the expected command to NetworkMonitor.
|
// Check that startCaptivePortalApp sends the expected command to NetworkMonitor.
|
||||||
mCm.startCaptivePortalApp(mWiFiNetworkAgent.getNetwork());
|
mCm.startCaptivePortalApp(mWiFiNetworkAgent.getNetwork());
|
||||||
@@ -2794,7 +2794,7 @@ public class ConnectivityServiceTest {
|
|||||||
// Report that the captive portal is dismissed with partial connectivity, and check that
|
// Report that the captive portal is dismissed with partial connectivity, and check that
|
||||||
// callbacks are fired.
|
// callbacks are fired.
|
||||||
mWiFiNetworkAgent.setNetworkPartial();
|
mWiFiNetworkAgent.setNetworkPartial();
|
||||||
mWiFiNetworkAgent.mNetworkMonitor.forceReevaluation(Process.myUid());
|
mCm.reportNetworkConnectivity(mWiFiNetworkAgent.getNetwork(), true);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
captivePortalCallback.expectCapabilitiesWith(NET_CAPABILITY_PARTIAL_CONNECTIVITY,
|
captivePortalCallback.expectCapabilitiesWith(NET_CAPABILITY_PARTIAL_CONNECTIVITY,
|
||||||
mWiFiNetworkAgent);
|
mWiFiNetworkAgent);
|
||||||
@@ -2805,6 +2805,7 @@ public class ConnectivityServiceTest {
|
|||||||
false /* always */);
|
false /* always */);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
mCm.reportNetworkConnectivity(mWiFiNetworkAgent.getNetwork(), true);
|
mCm.reportNetworkConnectivity(mWiFiNetworkAgent.getNetwork(), true);
|
||||||
|
captivePortalCallback.expectCallback(CallbackState.LOST, mWiFiNetworkAgent);
|
||||||
validatedCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
|
validatedCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
|
||||||
NetworkCapabilities nc =
|
NetworkCapabilities nc =
|
||||||
validatedCallback.expectCapabilitiesWith(NET_CAPABILITY_PARTIAL_CONNECTIVITY,
|
validatedCallback.expectCapabilitiesWith(NET_CAPABILITY_PARTIAL_CONNECTIVITY,
|
||||||
|
|||||||
Reference in New Issue
Block a user