Loading src/java/com/android/internal/telephony/data/DataNetworkController.java +7 −1 Original line number Diff line number Diff line Loading @@ -3183,7 +3183,13 @@ public class DataNetworkController extends Handler { return; } if (dataNetwork.isInternetSupported()) { // Only track the networks that require validation. // The criteria is base on NetworkMonitorUtils.java. NetworkCapabilities capabilities = dataNetwork.getNetworkCapabilities(); if (capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)) { if (status == NetworkAgent.VALIDATION_STATUS_NOT_VALID && (dataNetwork.getCurrentState() == null || dataNetwork.isDisconnected())) { log("Ignoring invalid validation status for disconnected DataNetwork"); Loading tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.net.LinkProperties; import android.net.NetworkCapabilities; import android.net.NetworkPolicyManager; import android.net.NetworkRequest; import android.net.Uri; import android.net.vcn.VcnManager.VcnNetworkPolicyChangeListener; import android.net.vcn.VcnNetworkPolicyResult; import android.os.AsyncResult; Loading Loading @@ -4049,6 +4050,41 @@ public class DataNetworkControllerTest extends TelephonyTest { verifyNoConnectedNetworkHasCapability(NetworkCapabilities.NET_CAPABILITY_FOTA); } @Test public void testNetworkValidationStatusChangeCallback() throws Exception { // Request not restricted network TelephonyNetworkRequest request = createNetworkRequest( NetworkCapabilities.NET_CAPABILITY_INTERNET); mDataNetworkControllerUT.addNetworkRequest(request); processAllMessages(); TelephonyNetworkAgent agent = getPrivateField(getDataNetworks().get(0), "mNetworkAgent", TelephonyNetworkAgent.class); agent.onValidationStatus(1/*status*/, Uri.EMPTY); processAllMessages(); // Verify notify verify(mMockedDataNetworkControllerCallback) .onInternetDataNetworkValidationStatusChanged(1); // Request restricted network mDataNetworkControllerUT.removeNetworkRequest(request); getDataNetworks().get(0).tearDown(DataNetwork.TEAR_DOWN_REASON_NONE); mDataNetworkControllerUT.getDataSettingsManager().setDataEnabled(0, false, ""); processAllMessages(); clearInvocations(mMockedDataNetworkControllerCallback); mDataNetworkControllerUT.addNetworkRequest(createNetworkRequest( true, NetworkCapabilities.NET_CAPABILITY_INTERNET)); processAllMessages(); agent = getPrivateField(getDataNetworks().get(0), "mNetworkAgent", TelephonyNetworkAgent.class); agent.onValidationStatus(1/*status*/, Uri.EMPTY); processAllMessages(); // Verify not notified verify(mMockedDataNetworkControllerCallback, never()) .onInternetDataNetworkValidationStatusChanged(anyInt()); } @Test public void testImsGracefulTearDown() throws Exception { setImsRegistered(true); Loading Loading
src/java/com/android/internal/telephony/data/DataNetworkController.java +7 −1 Original line number Diff line number Diff line Loading @@ -3183,7 +3183,13 @@ public class DataNetworkController extends Handler { return; } if (dataNetwork.isInternetSupported()) { // Only track the networks that require validation. // The criteria is base on NetworkMonitorUtils.java. NetworkCapabilities capabilities = dataNetwork.getNetworkCapabilities(); if (capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)) { if (status == NetworkAgent.VALIDATION_STATUS_NOT_VALID && (dataNetwork.getCurrentState() == null || dataNetwork.isDisconnected())) { log("Ignoring invalid validation status for disconnected DataNetwork"); Loading
tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.net.LinkProperties; import android.net.NetworkCapabilities; import android.net.NetworkPolicyManager; import android.net.NetworkRequest; import android.net.Uri; import android.net.vcn.VcnManager.VcnNetworkPolicyChangeListener; import android.net.vcn.VcnNetworkPolicyResult; import android.os.AsyncResult; Loading Loading @@ -4049,6 +4050,41 @@ public class DataNetworkControllerTest extends TelephonyTest { verifyNoConnectedNetworkHasCapability(NetworkCapabilities.NET_CAPABILITY_FOTA); } @Test public void testNetworkValidationStatusChangeCallback() throws Exception { // Request not restricted network TelephonyNetworkRequest request = createNetworkRequest( NetworkCapabilities.NET_CAPABILITY_INTERNET); mDataNetworkControllerUT.addNetworkRequest(request); processAllMessages(); TelephonyNetworkAgent agent = getPrivateField(getDataNetworks().get(0), "mNetworkAgent", TelephonyNetworkAgent.class); agent.onValidationStatus(1/*status*/, Uri.EMPTY); processAllMessages(); // Verify notify verify(mMockedDataNetworkControllerCallback) .onInternetDataNetworkValidationStatusChanged(1); // Request restricted network mDataNetworkControllerUT.removeNetworkRequest(request); getDataNetworks().get(0).tearDown(DataNetwork.TEAR_DOWN_REASON_NONE); mDataNetworkControllerUT.getDataSettingsManager().setDataEnabled(0, false, ""); processAllMessages(); clearInvocations(mMockedDataNetworkControllerCallback); mDataNetworkControllerUT.addNetworkRequest(createNetworkRequest( true, NetworkCapabilities.NET_CAPABILITY_INTERNET)); processAllMessages(); agent = getPrivateField(getDataNetworks().get(0), "mNetworkAgent", TelephonyNetworkAgent.class); agent.onValidationStatus(1/*status*/, Uri.EMPTY); processAllMessages(); // Verify not notified verify(mMockedDataNetworkControllerCallback, never()) .onInternetDataNetworkValidationStatusChanged(anyInt()); } @Test public void testImsGracefulTearDown() throws Exception { setImsRegistered(true); Loading