From 973c7df054bfb720a6e5585b38664e34145b3356 Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Mon, 23 Jan 2017 15:55:16 +0900 Subject: [PATCH] Add test for updateMobileRequiresDun() This test validates that when a mobile upstream has been requested changing the "DUN required" state results in updating the requested network appropriately. Test: as follows - built - flashed - booted - runtest frameworks-test passes Bug: 32163131 Change-Id: Ia3a1f6493ea348eb75e334344468a980206f618f --- .../tethering/UpstreamNetworkMonitorTest.java | 42 +++++++++++++++---- 1 file changed, 34 insertions(+), 8 deletions(-) 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<>();