Add test to make sure that unwanted local nets disconnect correctly
Also add some toString() methods that were useful in debugging. Test: new test in CSLocalAgentTests Change-Id: Ife95815e39d92bbef84b1c5ea75a151882590d09
This commit is contained in:
@@ -29,6 +29,7 @@ import android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING
|
||||
import android.net.NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED
|
||||
import android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED
|
||||
import android.net.NetworkCapabilities.TRANSPORT_CELLULAR
|
||||
import android.net.NetworkCapabilities.TRANSPORT_THREAD
|
||||
import android.net.NetworkCapabilities.TRANSPORT_WIFI
|
||||
import android.net.NetworkRequest
|
||||
import android.net.NetworkScore
|
||||
@@ -472,4 +473,55 @@ class CSLocalAgentTests : CSTest() {
|
||||
cb.expect<Lost>(localAgent.network)
|
||||
cb.assertNoCallback()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testLocalNetworkUnwanted_withUpstream() {
|
||||
doTestLocalNetworkUnwanted(true)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testLocalNetworkUnwanted_withoutUpstream() {
|
||||
doTestLocalNetworkUnwanted(false)
|
||||
}
|
||||
|
||||
fun doTestLocalNetworkUnwanted(haveUpstream: Boolean) {
|
||||
deps.setBuildSdk(VERSION_V)
|
||||
|
||||
val nr = NetworkRequest.Builder().addCapability(NET_CAPABILITY_LOCAL_NETWORK).build()
|
||||
val requestCb = TestableNetworkCallback()
|
||||
cm.requestNetwork(nr, requestCb)
|
||||
val listenCb = TestableNetworkCallback()
|
||||
cm.registerNetworkCallback(nr, listenCb)
|
||||
|
||||
val upstream = if (haveUpstream) {
|
||||
Agent(score = keepScore(), lp = lp("wifi0"),
|
||||
nc = nc(TRANSPORT_WIFI)).also { it.connect() }
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
// Set up a local agent.
|
||||
val lnc = LocalNetworkConfig.Builder().apply {
|
||||
if (haveUpstream) {
|
||||
setUpstreamSelector(NetworkRequest.Builder()
|
||||
.addTransportType(TRANSPORT_WIFI)
|
||||
.build())
|
||||
}
|
||||
}.build()
|
||||
val localAgent = Agent(nc = nc(TRANSPORT_THREAD, NET_CAPABILITY_LOCAL_NETWORK),
|
||||
lp = lp("local0"),
|
||||
lnc = lnc,
|
||||
score = FromS(NetworkScore.Builder().build())
|
||||
)
|
||||
localAgent.connect()
|
||||
|
||||
requestCb.expectAvailableCallbacks(localAgent.network,
|
||||
validated = false, upstream = upstream?.network)
|
||||
listenCb.expectAvailableCallbacks(localAgent.network,
|
||||
validated = false, upstream = upstream?.network)
|
||||
|
||||
cm.unregisterNetworkCallback(requestCb)
|
||||
|
||||
listenCb.expect<Lost>()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user