Merge changes I4f38a539,Id4f6c7f4
* changes: Add the underlying networks to NetworkAgentInfo#toString. Improve testing for network blocking.
This commit is contained in:
@@ -57,6 +57,7 @@ import com.android.internal.util.WakeupMessage;
|
|||||||
import com.android.server.ConnectivityService;
|
import com.android.server.ConnectivityService;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -1025,6 +1026,8 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
|
|||||||
+ (networkAgentConfig.acceptUnvalidated ? " acceptUnvalidated" : "")
|
+ (networkAgentConfig.acceptUnvalidated ? " acceptUnvalidated" : "")
|
||||||
+ (networkAgentConfig.acceptPartialConnectivity ? " acceptPartialConnectivity" : "")
|
+ (networkAgentConfig.acceptPartialConnectivity ? " acceptPartialConnectivity" : "")
|
||||||
+ (clatd.isStarted() ? " clat{" + clatd + "} " : "")
|
+ (clatd.isStarted() ? " clat{" + clatd + "} " : "")
|
||||||
|
+ (declaredUnderlyingNetworks != null
|
||||||
|
? " underlying{" + Arrays.toString(declaredUnderlyingNetworks) + "}" : "")
|
||||||
+ " lp{" + linkProperties + "}"
|
+ " lp{" + linkProperties + "}"
|
||||||
+ " nc{" + networkCapabilities + "}"
|
+ " nc{" + networkCapabilities + "}"
|
||||||
+ "}";
|
+ "}";
|
||||||
|
|||||||
@@ -1283,32 +1283,10 @@ public class ConnectivityServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateUidNetworkingBlocked() {
|
private void updateUidNetworkingBlocked() {
|
||||||
// Changes the return value of the mock NetworkPolicyManager's isUidNetworkingBlocked method
|
doAnswer(i -> NetworkPolicyManagerInternal.isUidNetworkingBlocked(
|
||||||
// based on the current UID rules and restrict background setting. Note that the test never
|
i.getArgument(0) /* uid */, mUidRules, i.getArgument(1) /* metered */,
|
||||||
// pretends to be a foreground app, so always declare no connectivity if background
|
mRestrictBackground)
|
||||||
// networking is not allowed.
|
).when(mNetworkPolicyManager).isUidNetworkingBlocked(anyInt(), anyBoolean());
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setUidRulesChanged(int uidRules) throws RemoteException {
|
private void setUidRulesChanged(int uidRules) throws RemoteException {
|
||||||
@@ -6917,7 +6895,7 @@ public class ConnectivityServiceTest {
|
|||||||
cellNetworkCallback.expectCapabilitiesWithout(NET_CAPABILITY_NOT_METERED,
|
cellNetworkCallback.expectCapabilitiesWithout(NET_CAPABILITY_NOT_METERED,
|
||||||
mCellNetworkAgent);
|
mCellNetworkAgent);
|
||||||
cellNetworkCallback.expectBlockedStatusCallback(true, mCellNetworkAgent);
|
cellNetworkCallback.expectBlockedStatusCallback(true, mCellNetworkAgent);
|
||||||
assertEquals(null, mCm.getActiveNetwork());
|
assertNull(mCm.getActiveNetwork());
|
||||||
assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
|
assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
|
||||||
assertNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
|
assertNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
|
||||||
|
|
||||||
@@ -6930,17 +6908,21 @@ public class ConnectivityServiceTest {
|
|||||||
setUidRulesChanged(RULE_NONE);
|
setUidRulesChanged(RULE_NONE);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
|
|
||||||
// Restrict the network based on BackgroundRestricted.
|
// Restrict background data. Networking is not blocked because the network is unmetered.
|
||||||
setRestrictBackgroundChanged(true);
|
setRestrictBackgroundChanged(true);
|
||||||
cellNetworkCallback.expectBlockedStatusCallback(true, mCellNetworkAgent);
|
cellNetworkCallback.expectBlockedStatusCallback(true, mCellNetworkAgent);
|
||||||
assertEquals(null, mCm.getActiveNetwork());
|
assertNull(mCm.getActiveNetwork());
|
||||||
assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
|
assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
|
||||||
assertNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
|
assertNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
|
||||||
|
|
||||||
setRestrictBackgroundChanged(true);
|
setRestrictBackgroundChanged(true);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
setRestrictBackgroundChanged(false);
|
|
||||||
|
setUidRulesChanged(RULE_ALLOW_METERED);
|
||||||
cellNetworkCallback.expectBlockedStatusCallback(false, mCellNetworkAgent);
|
cellNetworkCallback.expectBlockedStatusCallback(false, mCellNetworkAgent);
|
||||||
|
assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED);
|
||||||
|
assertNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED);
|
||||||
|
|
||||||
|
setRestrictBackgroundChanged(false);
|
||||||
cellNetworkCallback.assertNoCallback();
|
cellNetworkCallback.assertNoCallback();
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
|
||||||
assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED);
|
assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.CONNECTED);
|
||||||
|
|||||||
Reference in New Issue
Block a user