Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 973c7df0 authored by Erik Kline's avatar Erik Kline
Browse files

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
parent 1b2a1b91
Loading
Loading
Loading
Loading
+34 −8
Original line number Diff line number Diff line
@@ -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<>();