diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/TestConnectivityManager.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/TestConnectivityManager.java index 7ac80b06a6..a7287a2d5c 100644 --- a/Tethering/tests/unit/src/com/android/networkstack/tethering/TestConnectivityManager.java +++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/TestConnectivityManager.java @@ -58,17 +58,17 @@ import java.util.Objects; * that state changes), this may become less important or unnecessary. */ public class TestConnectivityManager extends ConnectivityManager { - public Map allCallbacks = new ArrayMap<>(); - public Map trackingDefault = new ArrayMap<>(); - public TestNetworkAgent defaultNetwork = null; - public Map listening = new ArrayMap<>(); - public Map requested = new ArrayMap<>(); - public Map legacyTypeMap = new ArrayMap<>(); + final Map mAllCallbacks = new ArrayMap<>(); + final Map mTrackingDefault = new ArrayMap<>(); + final Map mListening = new ArrayMap<>(); + final Map mRequested = new ArrayMap<>(); + final Map mLegacyTypeMap = new ArrayMap<>(); private final NetworkRequest mDefaultRequest; private final Context mContext; private int mNetworkId = 100; + private TestNetworkAgent mDefaultNetwork = null; /** * Constructs a TestConnectivityManager. @@ -94,26 +94,26 @@ public class TestConnectivityManager extends ConnectivityManager { } boolean hasNoCallbacks() { - return allCallbacks.isEmpty() - && trackingDefault.isEmpty() - && listening.isEmpty() - && requested.isEmpty() - && legacyTypeMap.isEmpty(); + return mAllCallbacks.isEmpty() + && mTrackingDefault.isEmpty() + && mListening.isEmpty() + && mRequested.isEmpty() + && mLegacyTypeMap.isEmpty(); } boolean onlyHasDefaultCallbacks() { - return (allCallbacks.size() == 1) - && (trackingDefault.size() == 1) - && listening.isEmpty() - && requested.isEmpty() - && legacyTypeMap.isEmpty(); + return (mAllCallbacks.size() == 1) + && (mTrackingDefault.size() == 1) + && mListening.isEmpty() + && mRequested.isEmpty() + && mLegacyTypeMap.isEmpty(); } boolean isListeningForAll() { final NetworkCapabilities empty = new NetworkCapabilities(); empty.clearAll(); - for (NetworkRequestInfo nri : listening.values()) { + for (NetworkRequestInfo nri : mListening.values()) { if (nri.request.networkCapabilities.equalRequestableCapabilities(empty)) { return true; } @@ -137,8 +137,8 @@ public class TestConnectivityManager extends ConnectivityManager { private void sendDefaultNetworkCallbacks(TestNetworkAgent formerDefault, TestNetworkAgent defaultNetwork) { - for (NetworkCallback cb : trackingDefault.keySet()) { - final NetworkRequestInfo nri = trackingDefault.get(cb); + for (NetworkCallback cb : mTrackingDefault.keySet()) { + final NetworkRequestInfo nri = mTrackingDefault.get(cb); if (defaultNetwork != null) { nri.handler.post(() -> cb.onAvailable(defaultNetwork.networkId)); nri.handler.post(() -> cb.onCapabilitiesChanged( @@ -152,25 +152,25 @@ public class TestConnectivityManager extends ConnectivityManager { } void makeDefaultNetwork(TestNetworkAgent agent) { - if (Objects.equals(defaultNetwork, agent)) return; + if (Objects.equals(mDefaultNetwork, agent)) return; - final TestNetworkAgent formerDefault = defaultNetwork; - defaultNetwork = agent; + final TestNetworkAgent formerDefault = mDefaultNetwork; + mDefaultNetwork = agent; - sendDefaultNetworkCallbacks(formerDefault, defaultNetwork); - sendDefaultNetworkBroadcasts(formerDefault, defaultNetwork); + sendDefaultNetworkCallbacks(formerDefault, mDefaultNetwork); + sendDefaultNetworkBroadcasts(formerDefault, mDefaultNetwork); } @Override public void requestNetwork(NetworkRequest req, NetworkCallback cb, Handler h) { - assertFalse(allCallbacks.containsKey(cb)); - allCallbacks.put(cb, new NetworkRequestInfo(req, h)); + assertFalse(mAllCallbacks.containsKey(cb)); + mAllCallbacks.put(cb, new NetworkRequestInfo(req, h)); if (mDefaultRequest.equals(req)) { - assertFalse(trackingDefault.containsKey(cb)); - trackingDefault.put(cb, new NetworkRequestInfo(req, h)); + assertFalse(mTrackingDefault.containsKey(cb)); + mTrackingDefault.put(cb, new NetworkRequestInfo(req, h)); } else { - assertFalse(requested.containsKey(cb)); - requested.put(cb, new NetworkRequestInfo(req, h)); + assertFalse(mRequested.containsKey(cb)); + mRequested.put(cb, new NetworkRequestInfo(req, h)); } } @@ -182,22 +182,22 @@ public class TestConnectivityManager extends ConnectivityManager { @Override public void requestNetwork(NetworkRequest req, int timeoutMs, int legacyType, Handler h, NetworkCallback cb) { - assertFalse(allCallbacks.containsKey(cb)); - allCallbacks.put(cb, new NetworkRequestInfo(req, h)); - assertFalse(requested.containsKey(cb)); - requested.put(cb, new NetworkRequestInfo(req, h)); - assertFalse(legacyTypeMap.containsKey(cb)); + assertFalse(mAllCallbacks.containsKey(cb)); + mAllCallbacks.put(cb, new NetworkRequestInfo(req, h)); + assertFalse(mRequested.containsKey(cb)); + mRequested.put(cb, new NetworkRequestInfo(req, h)); + assertFalse(mLegacyTypeMap.containsKey(cb)); if (legacyType != ConnectivityManager.TYPE_NONE) { - legacyTypeMap.put(cb, legacyType); + mLegacyTypeMap.put(cb, legacyType); } } @Override public void registerNetworkCallback(NetworkRequest req, NetworkCallback cb, Handler h) { - assertFalse(allCallbacks.containsKey(cb)); - allCallbacks.put(cb, new NetworkRequestInfo(req, h)); - assertFalse(listening.containsKey(cb)); - listening.put(cb, new NetworkRequestInfo(req, h)); + assertFalse(mAllCallbacks.containsKey(cb)); + mAllCallbacks.put(cb, new NetworkRequestInfo(req, h)); + assertFalse(mListening.containsKey(cb)); + mListening.put(cb, new NetworkRequestInfo(req, h)); } @Override @@ -217,22 +217,22 @@ public class TestConnectivityManager extends ConnectivityManager { @Override public void unregisterNetworkCallback(NetworkCallback cb) { - if (trackingDefault.containsKey(cb)) { - trackingDefault.remove(cb); - } else if (listening.containsKey(cb)) { - listening.remove(cb); - } else if (requested.containsKey(cb)) { - requested.remove(cb); - legacyTypeMap.remove(cb); + if (mTrackingDefault.containsKey(cb)) { + mTrackingDefault.remove(cb); + } else if (mListening.containsKey(cb)) { + mListening.remove(cb); + } else if (mRequested.containsKey(cb)) { + mRequested.remove(cb); + mLegacyTypeMap.remove(cb); } else { fail("Unexpected callback removed"); } - allCallbacks.remove(cb); + mAllCallbacks.remove(cb); - assertFalse(allCallbacks.containsKey(cb)); - assertFalse(trackingDefault.containsKey(cb)); - assertFalse(listening.containsKey(cb)); - assertFalse(requested.containsKey(cb)); + assertFalse(mAllCallbacks.containsKey(cb)); + assertFalse(mTrackingDefault.containsKey(cb)); + assertFalse(mListening.containsKey(cb)); + assertFalse(mRequested.containsKey(cb)); } private void sendConnectivityAction(int type, boolean connected) { @@ -294,15 +294,15 @@ public class TestConnectivityManager extends ConnectivityManager { } public void fakeConnect() { - for (NetworkRequestInfo nri : cm.requested.values()) { + for (NetworkRequestInfo nri : cm.mRequested.values()) { if (matchesLegacyType(nri.request.legacyType)) { cm.sendConnectivityAction(legacyType, true /* connected */); // In practice, a given network can match only one legacy type. break; } } - for (NetworkCallback cb : cm.listening.keySet()) { - final NetworkRequestInfo nri = cm.listening.get(cb); + for (NetworkCallback cb : cm.mListening.keySet()) { + final NetworkRequestInfo nri = cm.mListening.get(cb); nri.handler.post(() -> cb.onAvailable(networkId)); nri.handler.post(() -> cb.onCapabilitiesChanged( networkId, copy(networkCapabilities))); @@ -311,19 +311,19 @@ public class TestConnectivityManager extends ConnectivityManager { } public void fakeDisconnect() { - for (NetworkRequestInfo nri : cm.requested.values()) { + for (NetworkRequestInfo nri : cm.mRequested.values()) { if (matchesLegacyType(nri.request.legacyType)) { cm.sendConnectivityAction(legacyType, false /* connected */); break; } } - for (NetworkCallback cb : cm.listening.keySet()) { + for (NetworkCallback cb : cm.mListening.keySet()) { cb.onLost(networkId); } } public void sendLinkProperties() { - for (NetworkCallback cb : cm.listening.keySet()) { + for (NetworkCallback cb : cm.mListening.keySet()) { cb.onLinkPropertiesChanged(networkId, copy(linkProperties)); } } diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/UpstreamNetworkMonitorTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/UpstreamNetworkMonitorTest.java index 40e4f83c19..bc216925d8 100644 --- a/Tethering/tests/unit/src/com/android/networkstack/tethering/UpstreamNetworkMonitorTest.java +++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/UpstreamNetworkMonitorTest.java @@ -149,7 +149,7 @@ public class UpstreamNetworkMonitorTest { mUNM.startTrackDefaultNetwork(sDefaultRequest, mEntitleMgr); mUNM.startObserveAllNetworks(); - assertEquals(1, mCM.trackingDefault.size()); + assertEquals(1, mCM.mTrackingDefault.size()); mUNM.stop(); assertTrue(mCM.onlyHasDefaultCallbacks()); @@ -157,11 +157,11 @@ public class UpstreamNetworkMonitorTest { @Test public void testListensForAllNetworks() throws Exception { - assertTrue(mCM.listening.isEmpty()); + assertTrue(mCM.mListening.isEmpty()); mUNM.startTrackDefaultNetwork(sDefaultRequest, mEntitleMgr); mUNM.startObserveAllNetworks(); - assertFalse(mCM.listening.isEmpty()); + assertFalse(mCM.mListening.isEmpty()); assertTrue(mCM.isListeningForAll()); mUNM.stop(); @@ -184,15 +184,15 @@ public class UpstreamNetworkMonitorTest { @Test public void testRequestsMobileNetwork() throws Exception { assertFalse(mUNM.mobileNetworkRequested()); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); mUNM.startObserveAllNetworks(); assertFalse(mUNM.mobileNetworkRequested()); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); mUNM.setUpstreamConfig(false /* autoUpstream */, false /* dunRequired */); assertFalse(mUNM.mobileNetworkRequested()); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); mUNM.setTryCell(true); assertTrue(mUNM.mobileNetworkRequested()); @@ -207,13 +207,13 @@ public class UpstreamNetworkMonitorTest { @Test public void testDuplicateMobileRequestsIgnored() throws Exception { assertFalse(mUNM.mobileNetworkRequested()); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); mUNM.startObserveAllNetworks(); verify(mCM, times(1)).registerNetworkCallback( any(NetworkRequest.class), any(NetworkCallback.class), any(Handler.class)); assertFalse(mUNM.mobileNetworkRequested()); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */); mUNM.setTryCell(true); @@ -243,15 +243,15 @@ public class UpstreamNetworkMonitorTest { @Test public void testRequestsDunNetwork() throws Exception { assertFalse(mUNM.mobileNetworkRequested()); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); mUNM.startObserveAllNetworks(); assertFalse(mUNM.mobileNetworkRequested()); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */); assertFalse(mUNM.mobileNetworkRequested()); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); mUNM.setTryCell(true); assertTrue(mUNM.mobileNetworkRequested()); @@ -326,14 +326,14 @@ public class UpstreamNetworkMonitorTest { assertSatisfiesLegacyType(TYPE_MOBILE_HIPRI, mUNM.selectPreferredUpstreamType(preferredTypes)); // Check to see we filed an explicit request. - assertEquals(1, mCM.requested.size()); - NetworkRequest netReq = ((NetworkRequestInfo) mCM.requested.values().toArray()[0]).request; + assertEquals(1, mCM.mRequested.size()); + NetworkRequest netReq = ((NetworkRequestInfo) mCM.mRequested.values().toArray()[0]).request; assertTrue(netReq.networkCapabilities.hasTransport(TRANSPORT_CELLULAR)); assertFalse(netReq.networkCapabilities.hasCapability(NET_CAPABILITY_DUN)); // mobile is not permitted, we should not use HIPRI. when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false); assertSatisfiesLegacyType(TYPE_NONE, mUNM.selectPreferredUpstreamType(preferredTypes)); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); // mobile change back to permitted, HIRPI should come back when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true); assertSatisfiesLegacyType(TYPE_MOBILE_HIPRI, @@ -343,7 +343,7 @@ public class UpstreamNetworkMonitorTest { mLooper.dispatchAll(); // WiFi is up, and we should prefer it over cell. assertSatisfiesLegacyType(TYPE_WIFI, mUNM.selectPreferredUpstreamType(preferredTypes)); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); preferredTypes.remove(TYPE_MOBILE_HIPRI); preferredTypes.add(TYPE_MOBILE_DUN); @@ -364,14 +364,14 @@ public class UpstreamNetworkMonitorTest { assertSatisfiesLegacyType(TYPE_MOBILE_DUN, mUNM.selectPreferredUpstreamType(preferredTypes)); // Check to see we filed an explicit request. - assertEquals(1, mCM.requested.size()); - netReq = ((NetworkRequestInfo) mCM.requested.values().toArray()[0]).request; + assertEquals(1, mCM.mRequested.size()); + netReq = ((NetworkRequestInfo) mCM.mRequested.values().toArray()[0]).request; assertTrue(netReq.networkCapabilities.hasTransport(TRANSPORT_CELLULAR)); assertTrue(netReq.networkCapabilities.hasCapability(NET_CAPABILITY_DUN)); // mobile is not permitted, we should not use DUN. when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false); assertSatisfiesLegacyType(TYPE_NONE, mUNM.selectPreferredUpstreamType(preferredTypes)); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); // mobile change back to permitted, DUN should come back when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true); assertSatisfiesLegacyType(TYPE_MOBILE_DUN, @@ -391,38 +391,38 @@ public class UpstreamNetworkMonitorTest { mCM.makeDefaultNetwork(cellAgent); mLooper.dispatchAll(); assertEquals(cellAgent.networkId, mUNM.getCurrentPreferredUpstream().network); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); // [1] Mobile connects but not permitted -> null selected when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false); assertEquals(null, mUNM.getCurrentPreferredUpstream()); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); // [2] WiFi connects but not validated/promoted to default -> mobile selected. final TestNetworkAgent wifiAgent = new TestNetworkAgent(mCM, WIFI_CAPABILITIES); wifiAgent.fakeConnect(); mLooper.dispatchAll(); assertEquals(cellAgent.networkId, mUNM.getCurrentPreferredUpstream().network); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); // [3] WiFi validates and is promoted to the default network -> WiFi selected. mCM.makeDefaultNetwork(wifiAgent); mLooper.dispatchAll(); assertEquals(wifiAgent.networkId, mUNM.getCurrentPreferredUpstream().network); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); // [4] DUN required, no other changes -> WiFi still selected mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */); assertEquals(wifiAgent.networkId, mUNM.getCurrentPreferredUpstream().network); - assertEquals(1, mCM.requested.size()); + assertEquals(1, mCM.mRequested.size()); assertTrue(isDunRequested()); // [5] WiFi no longer validated, mobile becomes default, DUN required -> null selected. mCM.makeDefaultNetwork(cellAgent); mLooper.dispatchAll(); assertEquals(null, mUNM.getCurrentPreferredUpstream()); - assertEquals(1, mCM.requested.size()); + assertEquals(1, mCM.mRequested.size()); assertTrue(isDunRequested()); // [6] DUN network arrives -> DUN selected @@ -432,21 +432,21 @@ public class UpstreamNetworkMonitorTest { dunAgent.fakeConnect(); mLooper.dispatchAll(); assertEquals(dunAgent.networkId, mUNM.getCurrentPreferredUpstream().network); - assertEquals(1, mCM.requested.size()); + assertEquals(1, mCM.mRequested.size()); // [7] Mobile is not permitted -> null selected when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false); assertEquals(null, mUNM.getCurrentPreferredUpstream()); - assertEquals(1, mCM.requested.size()); + assertEquals(1, mCM.mRequested.size()); // [7] Mobile is permitted again -> DUN selected when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true); assertEquals(dunAgent.networkId, mUNM.getCurrentPreferredUpstream().network); - assertEquals(1, mCM.requested.size()); + assertEquals(1, mCM.mRequested.size()); // [8] DUN no longer required -> request is withdrawn mUNM.setUpstreamConfig(true /* autoUpstream */, false /* dunRequired */); - assertEquals(0, mCM.requested.size()); + assertEquals(0, mCM.mRequested.size()); assertFalse(isDunRequested()); } @@ -591,14 +591,14 @@ public class UpstreamNetworkMonitorTest { } private void assertUpstreamTypeRequested(int upstreamType) throws Exception { - assertEquals(1, mCM.requested.size()); - assertEquals(1, mCM.legacyTypeMap.size()); + assertEquals(1, mCM.mRequested.size()); + assertEquals(1, mCM.mLegacyTypeMap.size()); assertEquals(Integer.valueOf(upstreamType), - mCM.legacyTypeMap.values().iterator().next()); + mCM.mLegacyTypeMap.values().iterator().next()); } private boolean isDunRequested() { - for (NetworkRequestInfo nri : mCM.requested.values()) { + for (NetworkRequestInfo nri : mCM.mRequested.values()) { if (nri.request.networkCapabilities.hasCapability(NET_CAPABILITY_DUN)) { return true; }