Loading src/android/net/captiveportal/CapportApiProbeResult.java +3 −2 Original line number Diff line number Diff line Loading @@ -25,11 +25,12 @@ import com.android.networkstack.apishim.common.CaptivePortalDataShim; * @hide */ public class CapportApiProbeResult extends CaptivePortalProbeResult { @NonNull // CaptivePortalData may be null if the capport API does not send any valid reply. @Nullable private final CaptivePortalDataShim mCapportData; public CapportApiProbeResult(@NonNull CaptivePortalProbeResult result, @NonNull CaptivePortalDataShim capportData) { @Nullable CaptivePortalDataShim capportData) { this(result.mHttpResponseCode, result.redirectUrl, result.detectUrl, capportData, result.probeType); } Loading src/com/android/server/connectivity/NetworkMonitor.java +1 −1 Original line number Diff line number Diff line Loading @@ -2626,7 +2626,7 @@ public class NetworkMonitor extends StateMachine { validationLog("Missing user-portal-url from capport response"); return new CapportApiProbeResult( sendDnsAndHttpProbes(mProxy, mUrl, ValidationProbeEvent.PROBE_HTTP), capportData); null /* capportData */); } final String loginUrlString = capportData.getUserPortalUrl().toString(); // Starting from R (where CaptivePortalData was introduced), the captive portal app Loading tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java +23 −1 Original line number Diff line number Diff line Loading @@ -1153,7 +1153,29 @@ public class NetworkMonitorTest { } @Test public void testIsCaptivePortal_CapportApiIsPortal() throws Exception { public void testIsCaptivePortal_CapportApiIsPortalWithNullPortalUrl() throws Exception { assumeTrue(CaptivePortalDataShimImpl.isSupported()); setSslException(mHttpsConnection); final long bytesRemaining = 10_000L; final long secondsRemaining = 500L; // Set content without partal url. setApiContent(mCapportApiConnection, "{'captive': true," + "'venue-info-url': '" + TEST_VENUE_INFO_URL + "'," + "'bytes-remaining': " + bytesRemaining + "," + "'seconds-remaining': " + secondsRemaining + "}"); setPortal302(mHttpConnection); runNetworkTest(makeCapportLPs(), CELL_METERED_CAPABILITIES, VALIDATION_RESULT_PORTAL, 0 /* probesSucceeded*/, TEST_LOGIN_URL); verify(mCapportApiConnection).getResponseCode(); verify(mHttpConnection, times(1)).getResponseCode(); verify(mCallbacks, never()).notifyCaptivePortalDataChanged(any()); } @Test public void testIsCaptivePortal_CapportApiIsPortalWithValidPortalUrl() throws Exception { assumeTrue(CaptivePortalDataShimImpl.isSupported()); setSslException(mHttpsConnection); final long bytesRemaining = 10_000L; Loading Loading
src/android/net/captiveportal/CapportApiProbeResult.java +3 −2 Original line number Diff line number Diff line Loading @@ -25,11 +25,12 @@ import com.android.networkstack.apishim.common.CaptivePortalDataShim; * @hide */ public class CapportApiProbeResult extends CaptivePortalProbeResult { @NonNull // CaptivePortalData may be null if the capport API does not send any valid reply. @Nullable private final CaptivePortalDataShim mCapportData; public CapportApiProbeResult(@NonNull CaptivePortalProbeResult result, @NonNull CaptivePortalDataShim capportData) { @Nullable CaptivePortalDataShim capportData) { this(result.mHttpResponseCode, result.redirectUrl, result.detectUrl, capportData, result.probeType); } Loading
src/com/android/server/connectivity/NetworkMonitor.java +1 −1 Original line number Diff line number Diff line Loading @@ -2626,7 +2626,7 @@ public class NetworkMonitor extends StateMachine { validationLog("Missing user-portal-url from capport response"); return new CapportApiProbeResult( sendDnsAndHttpProbes(mProxy, mUrl, ValidationProbeEvent.PROBE_HTTP), capportData); null /* capportData */); } final String loginUrlString = capportData.getUserPortalUrl().toString(); // Starting from R (where CaptivePortalData was introduced), the captive portal app Loading
tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java +23 −1 Original line number Diff line number Diff line Loading @@ -1153,7 +1153,29 @@ public class NetworkMonitorTest { } @Test public void testIsCaptivePortal_CapportApiIsPortal() throws Exception { public void testIsCaptivePortal_CapportApiIsPortalWithNullPortalUrl() throws Exception { assumeTrue(CaptivePortalDataShimImpl.isSupported()); setSslException(mHttpsConnection); final long bytesRemaining = 10_000L; final long secondsRemaining = 500L; // Set content without partal url. setApiContent(mCapportApiConnection, "{'captive': true," + "'venue-info-url': '" + TEST_VENUE_INFO_URL + "'," + "'bytes-remaining': " + bytesRemaining + "," + "'seconds-remaining': " + secondsRemaining + "}"); setPortal302(mHttpConnection); runNetworkTest(makeCapportLPs(), CELL_METERED_CAPABILITIES, VALIDATION_RESULT_PORTAL, 0 /* probesSucceeded*/, TEST_LOGIN_URL); verify(mCapportApiConnection).getResponseCode(); verify(mHttpConnection, times(1)).getResponseCode(); verify(mCallbacks, never()).notifyCaptivePortalDataChanged(any()); } @Test public void testIsCaptivePortal_CapportApiIsPortalWithValidPortalUrl() throws Exception { assumeTrue(CaptivePortalDataShimImpl.isSupported()); setSslException(mHttpsConnection); final long bytesRemaining = 10_000L; Loading