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
This commit is contained in:
Erik Kline
2017-01-23 15:55:16 +09:00
parent 1b2a1b911d
commit 973c7df054

View File

@@ -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<NetworkCallback> trackingDefault = new HashSet<>();
public Map<NetworkCallback, NetworkRequest> listening = new HashMap<>();