From 8aa28fe733d8227984fe943d6d96083ec42680fe Mon Sep 17 00:00:00 2001 From: Chalard Jean Date: Wed, 3 Aug 2022 19:52:32 +0900 Subject: [PATCH] Add tests for callback visibility Test: this Change-Id: Ic1d8fab0105c2fa29536795a1c1359a026009fac --- .../server/ConnectivityServiceTest.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java index 1a624e3742..cb9439d1d0 100644 --- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java @@ -3053,6 +3053,43 @@ public class ConnectivityServiceTest { } } + @Test + public void testNetworkDoesntMatchRequestsUntilConnected() throws Exception { + final TestNetworkCallback cb = new TestNetworkCallback(); + final NetworkRequest wifiRequest = new NetworkRequest.Builder() + .addTransportType(TRANSPORT_WIFI).build(); + mCm.requestNetwork(wifiRequest, cb); + mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI); + // Updating the score triggers a rematch. + mWiFiNetworkAgent.setScore(new NetworkScore.Builder().build()); + cb.assertNoCallback(); + mWiFiNetworkAgent.connect(false); + cb.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent); + cb.assertNoCallback(); + mCm.unregisterNetworkCallback(cb); + } + + @Test + public void testNetworkNotVisibleUntilConnected() throws Exception { + final TestNetworkCallback cb = new TestNetworkCallback(); + final NetworkRequest wifiRequest = new NetworkRequest.Builder() + .addTransportType(TRANSPORT_WIFI).build(); + mCm.registerNetworkCallback(wifiRequest, cb); + mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI); + final NetworkCapabilities nc = mWiFiNetworkAgent.getNetworkCapabilities(); + nc.addCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED); + mWiFiNetworkAgent.setNetworkCapabilities(nc, true /* sendToConnectivityService */); + cb.assertNoCallback(); + mWiFiNetworkAgent.connect(false); + cb.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent); + final CallbackEntry found = CollectionUtils.findLast(cb.getHistory(), + it -> it instanceof CallbackEntry.CapabilitiesChanged); + assertTrue(((CallbackEntry.CapabilitiesChanged) found).getCaps() + .hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED)); + cb.assertNoCallback(); + mCm.unregisterNetworkCallback(cb); + } + @Test public void testStateChangeNetworkCallbacks() throws Exception { final TestNetworkCallback genericNetworkCallback = new TestNetworkCallback();