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

Commit 1c58e391 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Ensure that NetworkFactory objects cannot be reused." into rvc-dev am: a4cf9092

Change-Id: I8f54bd5dcbca8c1c0e4477209feebebfe2b4a6ea
parents 68c9d64f a4cf9092
Loading
Loading
Loading
Loading
+35 −3
Original line number Diff line number Diff line
@@ -2425,7 +2425,7 @@ public class ConnectivityServiceTest {
        assertEquals(expectedRequestCount, testFactory.getMyRequestCount());
        assertTrue(testFactory.getMyStartRequested());

        testFactory.unregister();
        testFactory.terminate();
        if (networkCallback != null) mCm.unregisterNetworkCallback(networkCallback);
        handlerThread.quit();
    }
@@ -2450,6 +2450,38 @@ public class ConnectivityServiceTest {
        // Skipping VALIDATED and CAPTIVE_PORTAL as they're disallowed.
    }

    @Test
    public void testNetworkFactoryUnregister() throws Exception {
        final NetworkCapabilities filter = new NetworkCapabilities();
        filter.clearAll();

        final HandlerThread handlerThread = new HandlerThread("testNetworkFactoryRequests");
        handlerThread.start();

        // Checks that calling setScoreFilter on a NetworkFactory immediately before closing it
        // does not crash.
        for (int i = 0; i < 100; i++) {
            final MockNetworkFactory testFactory = new MockNetworkFactory(handlerThread.getLooper(),
                    mServiceContext, "testFactory", filter);
            // Register the factory and don't be surprised when the default request arrives.
            testFactory.register();
            testFactory.expectAddRequestsWithScores(0);
            testFactory.waitForNetworkRequests(1);

            testFactory.setScoreFilter(42);
            testFactory.terminate();

            if (i % 2 == 0) {
                try {
                    testFactory.register();
                    fail("Re-registering terminated NetworkFactory should throw");
                } catch (IllegalStateException expected) {
                }
            }
        }
        handlerThread.quit();
    }

    @Test
    public void testNoMutableNetworkRequests() throws Exception {
        PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, new Intent("a"), 0);
@@ -3482,7 +3514,7 @@ public class ConnectivityServiceTest {
        cellNetworkCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
        assertLength(1, mCm.getAllNetworks());

        testFactory.unregister();
        testFactory.terminate();
        mCm.unregisterNetworkCallback(cellNetworkCallback);
        handlerThread.quit();
    }
@@ -3822,7 +3854,7 @@ public class ConnectivityServiceTest {
            mCm.unregisterNetworkCallback(networkCallback);
        }

        testFactory.unregister();
        testFactory.terminate();
        handlerThread.quit();
    }