Fix: VPNs update caps upon underlying network disconnect.
Clean cherry-pick of ag/4083954 Bug: 79748782 Test: ConnectivityServiceTests still pass Change-Id: I21e866c723099e5c3dee54ff13e830d44427fc7a Merged-In: I12c948ebeb2b74290908f8320ff77220dc4a9fb9
This commit is contained in:
@@ -4401,24 +4401,22 @@ public class ConnectivityServiceTest {
|
||||
&& !caps.hasCapability(NET_CAPABILITY_NOT_METERED),
|
||||
vpnNetworkAgent);
|
||||
|
||||
if (false) { // TODO : reactivate this ; in the current state, the below fail.
|
||||
// Disconnect cell. Receive update without even removing the dead network from the
|
||||
// underlying networks – it's dead anyway. Not metered any more.
|
||||
mCellNetworkAgent.disconnect();
|
||||
vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
|
||||
&& !caps.hasTransport(TRANSPORT_CELLULAR) && caps.hasTransport(TRANSPORT_WIFI)
|
||||
&& caps.hasCapability(NET_CAPABILITY_NOT_METERED),
|
||||
vpnNetworkAgent);
|
||||
// Disconnect cell. Receive update without even removing the dead network from the
|
||||
// underlying networks – it's dead anyway. Not metered any more.
|
||||
mCellNetworkAgent.disconnect();
|
||||
vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
|
||||
&& !caps.hasTransport(TRANSPORT_CELLULAR) && caps.hasTransport(TRANSPORT_WIFI)
|
||||
&& caps.hasCapability(NET_CAPABILITY_NOT_METERED),
|
||||
vpnNetworkAgent);
|
||||
|
||||
// Disconnect wifi too. No underlying networks should mean this is now metered,
|
||||
// unfortunately a discrepancy in the current implementation has this unmetered.
|
||||
// TODO : fix this.
|
||||
mWiFiNetworkAgent.disconnect();
|
||||
vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
|
||||
&& !caps.hasTransport(TRANSPORT_CELLULAR) && !caps.hasTransport(TRANSPORT_WIFI)
|
||||
&& caps.hasCapability(NET_CAPABILITY_NOT_METERED),
|
||||
vpnNetworkAgent);
|
||||
}
|
||||
// Disconnect wifi too. No underlying networks should mean this is now metered,
|
||||
// unfortunately a discrepancy in the current implementation has this unmetered.
|
||||
// TODO : fix this.
|
||||
mWiFiNetworkAgent.disconnect();
|
||||
vpnNetworkCallback.expectCapabilitiesLike((caps) -> caps.hasTransport(TRANSPORT_VPN)
|
||||
&& !caps.hasTransport(TRANSPORT_CELLULAR) && !caps.hasTransport(TRANSPORT_WIFI)
|
||||
&& caps.hasCapability(NET_CAPABILITY_NOT_METERED),
|
||||
vpnNetworkAgent);
|
||||
|
||||
mMockVpn.disconnect();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user