diff options
| author | 2021-02-02 10:06:03 +0000 | |
|---|---|---|
| committer | 2021-02-02 10:06:03 +0000 | |
| commit | 22823382e40d85943ab264b621a0d4d6f23d9787 (patch) | |
| tree | aabb541763b62d6e43baa7acd8f05c531a45186e | |
| parent | c4cf8d3dfa67297cf7f964810b086c2107f97588 (diff) | |
| parent | ee73d9b87cff3a259fac5d5738d33e5fb6eefde9 (diff) | |
Merge changes I4f38a539,Id4f6c7f4
* changes:
Add the underlying networks to NetworkAgentInfo#toString.
Improve testing for network blocking.
| -rw-r--r-- | services/core/java/com/android/server/connectivity/NetworkAgentInfo.java | 3 | ||||
| -rw-r--r-- | tests/net/java/com/android/server/ConnectivityServiceTest.java | 44 |
2 files changed, 16 insertions, 31 deletions
diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java index b2824846008c..1a4f20c7101e 100644 --- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java @@ -57,6 +57,7 @@ import com.android.internal.util.WakeupMessage; import com.android.server.ConnectivityService; import java.io.PrintWriter; +import java.util.Arrays; import java.util.List; import java.util.NoSuchElementException; import java.util.Objects; @@ -1025,6 +1026,8 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { + (networkAgentConfig.acceptUnvalidated ? " acceptUnvalidated" : "") + (networkAgentConfig.acceptPartialConnectivity ? " acceptPartialConnectivity" : "") + (clatd.isStarted() ? " clat{" + clatd + "} " : "") + + (declaredUnderlyingNetworks != null + ? " underlying{" + Arrays.toString(declaredUnderlyingNetworks) + "}" : "") + " lp{" + linkProperties + "}" + " nc{" + networkCapabilities + "}" + "}"; diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 4f13dc3d3e94..4c658e1be1e1 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -1283,32 +1283,10 @@ public class ConnectivityServiceTest { } private void updateUidNetworkingBlocked() { - // Changes the return value of the mock NetworkPolicyManager's isUidNetworkingBlocked method - // based on the current UID rules and restrict background setting. Note that the test never - // pretends to be a foreground app, so always declare no connectivity if background - // networking is not allowed. - switch (mUidRules) { - case RULE_REJECT_ALL: - when(mNetworkPolicyManager.isUidNetworkingBlocked(anyInt(), anyBoolean())) - .thenReturn(true); - break; - - case RULE_REJECT_METERED: - when(mNetworkPolicyManager.isUidNetworkingBlocked(anyInt(), eq(true))) - .thenReturn(true); - when(mNetworkPolicyManager.isUidNetworkingBlocked(anyInt(), eq(false))) - .thenReturn(mRestrictBackground); - break; - - case RULE_ALLOW_METERED: - case RULE_NONE: - when(mNetworkPolicyManager.isUidNetworkingBlocked(anyInt(), anyBoolean())) - .thenReturn(mRestrictBackground); - break; - - default: - fail("Unknown policy rule " + mUidRules); - } + doAnswer(i -> NetworkPolicyManagerInternal.isUidNetworkingBlocked( + i.getArgument(0) /* uid */, mUidRules, i.getArgument(1) /* metered */, + mRestrictBackground) + ).when(mNetworkPolicyManager).isUidNetworkingBlocked(anyInt(), anyBoolean()); } private void setUidRulesChanged(int uidRules) throws RemoteException { @@ -6917,7 +6895,7 @@ public class ConnectivityServiceTest { cellNetworkCallback.expectCapabilitiesWithout(NET_CAPABILITY_NOT_METERED, mCellNetworkAgent); cellNetworkCallback.expectBlockedStatusCallback(true, mCellNetworkAgent); - assertEquals(null, mCm.getActiveNetwork()); + assertNull(mCm.getActiveNetwork()); assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED); assertNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED); @@ -6930,17 +6908,21 @@ public class ConnectivityServiceTest { setUidRulesChanged(RULE_NONE); cellNetworkCallback.assertNoCallback(); - // Restrict the network based on BackgroundRestricted. + // Restrict background data. Networking is not blocked because the network is unmetered. setRestrictBackgroundChanged(true); cellNetworkCallback.expectBlockedStatusCallback(true, mCellNetworkAgent); - assertEquals(null, mCm.getActiveNetwork()); + assertNull(mCm.getActiveNetwork()); assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED); assertNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED); - setRestrictBackgroundChanged(true); cellNetworkCallback.assertNoCallback(); - setRestrictBackgroundChanged(false); + + setUidRulesChanged(RULE_ALLOW_METERED); cellNetworkCallback.expectBlockedStatusCallback(false, mCellNetworkAgent); + assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED); + assertNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED); + + setRestrictBackgroundChanged(false); cellNetworkCallback.assertNoCallback(); assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork()); assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED); |