diff --git a/tests/net/java/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java b/tests/net/java/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java index 0cd065169713a..1e67769277da9 100644 --- a/tests/net/java/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java +++ b/tests/net/java/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java @@ -117,10 +117,7 @@ public class UpstreamNetworkMonitorTest { mUNM.registerMobileNetworkRequest(); assertTrue(mUNM.mobileNetworkRequested()); - assertEquals(1, mCM.requested.size()); - assertEquals(1, mCM.legacyTypeMap.size()); - assertEquals(Integer.valueOf(TYPE_MOBILE_HIPRI), - mCM.legacyTypeMap.values().iterator().next()); + assertUpstreamTypeRequested(TYPE_MOBILE_HIPRI); assertFalse(mCM.isDunRequested()); mUNM.stop(); @@ -143,10 +140,7 @@ public class UpstreamNetworkMonitorTest { mUNM.registerMobileNetworkRequest(); assertTrue(mUNM.mobileNetworkRequested()); - assertEquals(1, mCM.requested.size()); - assertEquals(1, mCM.legacyTypeMap.size()); - assertEquals(Integer.valueOf(TYPE_MOBILE_DUN), - mCM.legacyTypeMap.values().iterator().next()); + assertUpstreamTypeRequested(TYPE_MOBILE_DUN); assertTrue(mCM.isDunRequested()); mUNM.stop(); @@ -154,6 +148,38 @@ public class UpstreamNetworkMonitorTest { assertTrue(mCM.hasNoCallbacks()); } + @Test + public void testUpdateMobileRequiredDun() throws Exception { + mUNM.start(); + + // Test going from no-DUN to DUN correctly re-registers callbacks. + mUNM.updateMobileRequiresDun(false); + mUNM.registerMobileNetworkRequest(); + assertTrue(mUNM.mobileNetworkRequested()); + assertUpstreamTypeRequested(TYPE_MOBILE_HIPRI); + assertFalse(mCM.isDunRequested()); + mUNM.updateMobileRequiresDun(true); + assertTrue(mUNM.mobileNetworkRequested()); + assertUpstreamTypeRequested(TYPE_MOBILE_DUN); + assertTrue(mCM.isDunRequested()); + + // Test going from DUN to no-DUN correctly re-registers callbacks. + mUNM.updateMobileRequiresDun(false); + assertTrue(mUNM.mobileNetworkRequested()); + assertUpstreamTypeRequested(TYPE_MOBILE_HIPRI); + assertFalse(mCM.isDunRequested()); + + mUNM.stop(); + assertFalse(mUNM.mobileNetworkRequested()); + } + + private void assertUpstreamTypeRequested(int upstreamType) throws Exception { + assertEquals(1, mCM.requested.size()); + assertEquals(1, mCM.legacyTypeMap.size()); + assertEquals(Integer.valueOf(upstreamType), + mCM.legacyTypeMap.values().iterator().next()); + } + private static class TestConnectivityManager extends ConnectivityManager { public Set trackingDefault = new HashSet<>(); public Map listening = new HashMap<>();