Snap for 6520394 from 7de4f0582d986cda347052cdcdb39c4cc97e44f4 to rvc-release

Change-Id: I471d16f3c3735f4fdd9844c59d4d94c8bc6a492a
This commit is contained in:
android-build-team Robot
2020-05-22 01:01:16 +00:00
2 changed files with 57 additions and 0 deletions

View File

@@ -592,4 +592,50 @@ class NetworkAgentTest {
assertNull(it.uri)
}
}
@Test
fun testTemporarilyUnmeteredCapability() {
// This test will create a networks with/without NET_CAPABILITY_TEMPORARILY_NOT_METERED
// and check that the callback reflects the capability changes.
// First create a request to make sure the network is kept up
val request1 = NetworkRequest.Builder()
.clearCapabilities()
.addTransportType(NetworkCapabilities.TRANSPORT_TEST)
.build()
val callback1 = TestableNetworkCallback(DEFAULT_TIMEOUT_MS).also {
registerNetworkCallback(request1, it)
}
requestNetwork(request1, callback1)
// Then file the interesting request
val request = NetworkRequest.Builder()
.clearCapabilities()
.addTransportType(NetworkCapabilities.TRANSPORT_TEST)
.build()
val callback = TestableNetworkCallback()
requestNetwork(request, callback)
// Connect the network
createConnectedNetworkAgent().let { (agent, _) ->
callback.expectAvailableThenValidatedCallbacks(agent.network)
// Send TEMP_NOT_METERED and check that the callback is called appropriately.
val nc1 = NetworkCapabilities(agent.nc)
.addCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)
agent.sendNetworkCapabilities(nc1)
callback.expectCapabilitiesThat(agent.network) {
it.hasCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)
}
// Remove TEMP_NOT_METERED and check that the callback is called appropriately.
val nc2 = NetworkCapabilities(agent.nc)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)
agent.sendNetworkCapabilities(nc2)
callback.expectCapabilitiesThat(agent.network) {
!it.hasCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)
}
}
// tearDown() will unregister the requests and agents
}
}

View File

@@ -18,6 +18,7 @@ package android.net.cts;
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
import static android.net.NetworkCapabilities.NET_CAPABILITY_MMS;
import static android.net.NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED;
import static android.net.NetworkCapabilities.TRANSPORT_BLUETOOTH;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
import static android.net.NetworkCapabilities.TRANSPORT_VPN;
@@ -86,6 +87,16 @@ public class NetworkRequestTest {
verifyNoCapabilities(nr);
}
@Test
public void testTemporarilyNotMeteredCapability() {
assertTrue(new NetworkRequest.Builder()
.addCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED).build()
.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED));
assertFalse(new NetworkRequest.Builder()
.removeCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED).build()
.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED));
}
private void verifyNoCapabilities(NetworkRequest nr) {
// NetworkCapabilities.mNetworkCapabilities is defined as type long
final int MAX_POSSIBLE_CAPABILITY = Long.SIZE;