Test validation status
Test: this Bug: 139268426 Change-Id: I04be5cda321af109cb6fd7510362d817ab23b505 Merged-In: I8499d9da8643cf60c912570e7a2ac2207d662e16 (cherry picked from commit 03af30598907add0f64d815f5487ea97e8d61f04, aosp/1284558)
This commit is contained in:
@@ -26,15 +26,20 @@ import android.net.NetworkAgent
|
|||||||
import android.net.NetworkAgent.CMD_ADD_KEEPALIVE_PACKET_FILTER
|
import android.net.NetworkAgent.CMD_ADD_KEEPALIVE_PACKET_FILTER
|
||||||
import android.net.NetworkAgent.CMD_PREVENT_AUTOMATIC_RECONNECT
|
import android.net.NetworkAgent.CMD_PREVENT_AUTOMATIC_RECONNECT
|
||||||
import android.net.NetworkAgent.CMD_REMOVE_KEEPALIVE_PACKET_FILTER
|
import android.net.NetworkAgent.CMD_REMOVE_KEEPALIVE_PACKET_FILTER
|
||||||
|
import android.net.NetworkAgent.CMD_REPORT_NETWORK_STATUS
|
||||||
import android.net.NetworkAgent.CMD_SAVE_ACCEPT_UNVALIDATED
|
import android.net.NetworkAgent.CMD_SAVE_ACCEPT_UNVALIDATED
|
||||||
import android.net.NetworkAgent.CMD_START_SOCKET_KEEPALIVE
|
import android.net.NetworkAgent.CMD_START_SOCKET_KEEPALIVE
|
||||||
import android.net.NetworkAgent.CMD_STOP_SOCKET_KEEPALIVE
|
import android.net.NetworkAgent.CMD_STOP_SOCKET_KEEPALIVE
|
||||||
|
import android.net.NetworkAgent.INVALID_NETWORK
|
||||||
|
import android.net.NetworkAgent.VALID_NETWORK
|
||||||
import android.net.NetworkAgentConfig
|
import android.net.NetworkAgentConfig
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
import android.net.NetworkProvider
|
import android.net.NetworkProvider
|
||||||
import android.net.NetworkRequest
|
import android.net.NetworkRequest
|
||||||
import android.net.SocketKeepalive
|
import android.net.SocketKeepalive
|
||||||
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.HandlerThread
|
import android.os.HandlerThread
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
@@ -48,6 +53,7 @@ import android.net.cts.NetworkAgentTest.TestableNetworkAgent.CallbackEntry.OnRem
|
|||||||
import android.net.cts.NetworkAgentTest.TestableNetworkAgent.CallbackEntry.OnSaveAcceptUnvalidated
|
import android.net.cts.NetworkAgentTest.TestableNetworkAgent.CallbackEntry.OnSaveAcceptUnvalidated
|
||||||
import android.net.cts.NetworkAgentTest.TestableNetworkAgent.CallbackEntry.OnStartSocketKeepalive
|
import android.net.cts.NetworkAgentTest.TestableNetworkAgent.CallbackEntry.OnStartSocketKeepalive
|
||||||
import android.net.cts.NetworkAgentTest.TestableNetworkAgent.CallbackEntry.OnStopSocketKeepalive
|
import android.net.cts.NetworkAgentTest.TestableNetworkAgent.CallbackEntry.OnStopSocketKeepalive
|
||||||
|
import android.net.cts.NetworkAgentTest.TestableNetworkAgent.CallbackEntry.OnValidationStatus
|
||||||
import androidx.test.InstrumentationRegistry
|
import androidx.test.InstrumentationRegistry
|
||||||
import androidx.test.runner.AndroidJUnit4
|
import androidx.test.runner.AndroidJUnit4
|
||||||
import com.android.internal.util.AsyncChannel
|
import com.android.internal.util.AsyncChannel
|
||||||
@@ -187,6 +193,7 @@ class NetworkAgentTest {
|
|||||||
data class OnStopSocketKeepalive(val slot: Int) : CallbackEntry()
|
data class OnStopSocketKeepalive(val slot: Int) : CallbackEntry()
|
||||||
data class OnSaveAcceptUnvalidated(val accept: Boolean) : CallbackEntry()
|
data class OnSaveAcceptUnvalidated(val accept: Boolean) : CallbackEntry()
|
||||||
object OnAutomaticReconnectDisabled : CallbackEntry()
|
object OnAutomaticReconnectDisabled : CallbackEntry()
|
||||||
|
data class OnValidationStatus(val status: Int, val uri: Uri?) : CallbackEntry()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBandwidthUpdateRequested() {
|
override fun onBandwidthUpdateRequested() {
|
||||||
@@ -225,6 +232,23 @@ class NetworkAgentTest {
|
|||||||
history.add(OnAutomaticReconnectDisabled)
|
history.add(OnAutomaticReconnectDisabled)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onValidationStatus(status: Int, uri: Uri?) {
|
||||||
|
history.add(OnValidationStatus(status, uri))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Expects the initial validation event that always occurs immediately after registering
|
||||||
|
// a NetworkAgent whose network does not require validation (which test networks do
|
||||||
|
// not, since they lack the INTERNET capability). It always contains the default argument
|
||||||
|
// for the URI.
|
||||||
|
fun expectNoInternetValidationStatus() = expectCallback<OnValidationStatus>().let {
|
||||||
|
assertEquals(it.status, VALID_NETWORK)
|
||||||
|
// The returned Uri is parsed from the empty string, which means it's an
|
||||||
|
// instance of the (private) Uri.StringUri. There are no real good ways
|
||||||
|
// to check this, the least bad is to just convert it to a string and
|
||||||
|
// make sure it's empty.
|
||||||
|
assertEquals("", it.uri.toString())
|
||||||
|
}
|
||||||
|
|
||||||
inline fun <reified T : CallbackEntry> expectCallback(): T {
|
inline fun <reified T : CallbackEntry> expectCallback(): T {
|
||||||
val foundCallback = history.poll(DEFAULT_TIMEOUT_MS)
|
val foundCallback = history.poll(DEFAULT_TIMEOUT_MS)
|
||||||
assertTrue(foundCallback is T, "Expected ${T::class} but found $foundCallback")
|
assertTrue(foundCallback is T, "Expected ${T::class} but found $foundCallback")
|
||||||
@@ -281,6 +305,7 @@ class NetworkAgentTest {
|
|||||||
fun testConnectAndUnregister() {
|
fun testConnectAndUnregister() {
|
||||||
val (agent, callback) = createConnectedNetworkAgent()
|
val (agent, callback) = createConnectedNetworkAgent()
|
||||||
callback.expectAvailableThenValidatedCallbacks(agent.network)
|
callback.expectAvailableThenValidatedCallbacks(agent.network)
|
||||||
|
agent.expectNoInternetValidationStatus()
|
||||||
agent.unregister()
|
agent.unregister()
|
||||||
callback.expectCallback<Lost>(agent.network)
|
callback.expectCallback<Lost>(agent.network)
|
||||||
agent.expectCallback<OnNetworkUnwanted>()
|
agent.expectCallback<OnNetworkUnwanted>()
|
||||||
@@ -293,6 +318,7 @@ class NetworkAgentTest {
|
|||||||
fun testOnBandwidthUpdateRequested() {
|
fun testOnBandwidthUpdateRequested() {
|
||||||
val (agent, callback) = createConnectedNetworkAgent()
|
val (agent, callback) = createConnectedNetworkAgent()
|
||||||
callback.expectAvailableThenValidatedCallbacks(agent.network)
|
callback.expectAvailableThenValidatedCallbacks(agent.network)
|
||||||
|
agent.expectNoInternetValidationStatus()
|
||||||
mCM.requestBandwidthUpdate(agent.network)
|
mCM.requestBandwidthUpdate(agent.network)
|
||||||
agent.expectCallback<OnBandwidthUpdateRequested>()
|
agent.expectCallback<OnBandwidthUpdateRequested>()
|
||||||
agent.unregister()
|
agent.unregister()
|
||||||
@@ -377,4 +403,25 @@ class NetworkAgentTest {
|
|||||||
agent.expectCallback<OnNetworkUnwanted>()
|
agent.expectCallback<OnNetworkUnwanted>()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testValidationStatus() = createNetworkAgentWithFakeCS().let { agent ->
|
||||||
|
val uri = Uri.parse("http://www.google.com")
|
||||||
|
val bundle = Bundle().apply {
|
||||||
|
putString(NetworkAgent.REDIRECT_URL_KEY, uri.toString())
|
||||||
|
}
|
||||||
|
mFakeConnectivityService.sendMessage(CMD_REPORT_NETWORK_STATUS,
|
||||||
|
arg1 = VALID_NETWORK, obj = bundle)
|
||||||
|
agent.expectCallback<OnValidationStatus>().let {
|
||||||
|
assertEquals(it.status, VALID_NETWORK)
|
||||||
|
assertEquals(it.uri, uri)
|
||||||
|
}
|
||||||
|
|
||||||
|
mFakeConnectivityService.sendMessage(CMD_REPORT_NETWORK_STATUS,
|
||||||
|
arg1 = INVALID_NETWORK, obj = Bundle())
|
||||||
|
agent.expectCallback<OnValidationStatus>().let {
|
||||||
|
assertEquals(it.status, INVALID_NETWORK)
|
||||||
|
assertNull(it.uri)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user