Merge "Change to REQUEST from LISTEN for mobile data preferred uids feature" am: 7079b72fa6
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1751023 Change-Id: I4c87ecdd3d05305aa47a7569a22f370aedf4b585
This commit is contained in:
@@ -9954,7 +9954,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
// - The request for the mobile network preferred.
|
// - The request for the mobile network preferred.
|
||||||
// - The request for the default network, for fallback.
|
// - The request for the default network, for fallback.
|
||||||
requests.add(createDefaultInternetRequestForTransport(
|
requests.add(createDefaultInternetRequestForTransport(
|
||||||
TRANSPORT_CELLULAR, NetworkRequest.Type.LISTEN));
|
TRANSPORT_CELLULAR, NetworkRequest.Type.REQUEST));
|
||||||
requests.add(createDefaultInternetRequestForTransport(
|
requests.add(createDefaultInternetRequestForTransport(
|
||||||
TYPE_NONE, NetworkRequest.Type.TRACK_DEFAULT));
|
TYPE_NONE, NetworkRequest.Type.TRACK_DEFAULT));
|
||||||
final Set<UidRange> ranges = new ArraySet<>();
|
final Set<UidRange> ranges = new ArraySet<>();
|
||||||
|
|||||||
@@ -13385,43 +13385,43 @@ public class ConnectivityServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetMobileDataPreferredUids_noIssueToFactory() throws Exception {
|
public void testMultilayerRequestsOfSetMobileDataPreferredUids() throws Exception {
|
||||||
// First set mobile data preferred uid to create a multi-layer requests: 1. listen for
|
// First set mobile data preferred uid to create a multi-layer requests: 1. request for
|
||||||
// cellular, 2. track the default network for fallback.
|
// cellular, 2. track the default network for fallback.
|
||||||
setAndUpdateMobileDataPreferredUids(
|
setAndUpdateMobileDataPreferredUids(
|
||||||
Set.of(PRIMARY_USER_HANDLE.getUid(TEST_PACKAGE_UID)));
|
Set.of(PRIMARY_USER_HANDLE.getUid(TEST_PACKAGE_UID)));
|
||||||
|
|
||||||
final HandlerThread handlerThread = new HandlerThread("MockFactory");
|
final HandlerThread handlerThread = new HandlerThread("MockFactory");
|
||||||
handlerThread.start();
|
handlerThread.start();
|
||||||
NetworkCapabilities internetFilter = new NetworkCapabilities()
|
final NetworkCapabilities cellFilter = new NetworkCapabilities()
|
||||||
|
.addTransportType(TRANSPORT_CELLULAR)
|
||||||
.addCapability(NET_CAPABILITY_INTERNET)
|
.addCapability(NET_CAPABILITY_INTERNET)
|
||||||
.addCapability(NET_CAPABILITY_NOT_VCN_MANAGED);
|
.addCapability(NET_CAPABILITY_NOT_VCN_MANAGED);
|
||||||
final MockNetworkFactory internetFactory = new MockNetworkFactory(handlerThread.getLooper(),
|
final MockNetworkFactory cellFactory = new MockNetworkFactory(handlerThread.getLooper(),
|
||||||
mServiceContext, "internetFactory", internetFilter, mCsHandlerThread);
|
mServiceContext, "cellFactory", cellFilter, mCsHandlerThread);
|
||||||
internetFactory.setScoreFilter(40);
|
cellFactory.setScoreFilter(40);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
internetFactory.register();
|
cellFactory.register();
|
||||||
// Default internet request only. The first request is listen for cellular network,
|
// Default internet request and the mobile data preferred request.
|
||||||
// which is never sent to factories (it's a LISTEN, not requestable). The second
|
cellFactory.expectRequestAdds(2);
|
||||||
// fallback request is TRACK_DEFAULT which is also not sent to factories.
|
cellFactory.assertRequestCountEquals(2);
|
||||||
internetFactory.expectRequestAdds(1);
|
|
||||||
internetFactory.assertRequestCountEquals(1);
|
|
||||||
|
|
||||||
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
|
mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
|
||||||
mCellNetworkAgent.connect(true);
|
mWiFiNetworkAgent.connect(true);
|
||||||
|
|
||||||
// The internet factory however is outscored, and should lose its requests.
|
// The cellFactory however is outscored, and should lose default internet request.
|
||||||
internetFactory.expectRequestRemove();
|
// But it should still see mobile data preferred request.
|
||||||
internetFactory.assertRequestCountEquals(0);
|
cellFactory.expectRequestRemove();
|
||||||
|
cellFactory.assertRequestCountEquals(1);
|
||||||
|
|
||||||
mCellNetworkAgent.disconnect();
|
mWiFiNetworkAgent.disconnect();
|
||||||
// The network satisfying the default internet request has disconnected, so the
|
// The network satisfying the default internet request has disconnected, so the
|
||||||
// internetFactory sees the default request again.
|
// cellFactory sees the default internet requests again.
|
||||||
internetFactory.expectRequestAdds(1);
|
cellFactory.expectRequestAdd();
|
||||||
internetFactory.assertRequestCountEquals(1);
|
cellFactory.assertRequestCountEquals(2);
|
||||||
} finally {
|
} finally {
|
||||||
internetFactory.terminate();
|
cellFactory.terminate();
|
||||||
handlerThread.quitSafely();
|
handlerThread.quitSafely();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user