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

Commit e93309bf authored by Lorenzo Colitti's avatar Lorenzo Colitti
Browse files

Set extraInfo on cellular TestNetworkAgents.

This makes the test more realistic, since telephony always puts
the APN name in the extraInfo field. It also makes it easy to
test that various APIs properly return the extra info without
plumbing a new parameter through TestNetworkAgentWrapper,
NetworkAgentWrapper, and InstrumentedNetworkAgent.

Also make the extraInfo and the legacyType available to tests.
This will be used in future tests that assert the contents of
extraInfo.

Bug: 181855958
Test: test-only change
Change-Id: If4eddb6cd9e70bb33e10d72aceebaea843244246
parent 643fb23a
Loading
Loading
Loading
Loading
+21 −8
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ public class NetworkAgentWrapper implements TestableNetworkCallback.HasNetwork {
    private final HandlerThread mHandlerThread;
    private final Context mContext;
    private final String mLogTag;
    private final NetworkAgentConfig mNetworkAgentConfig;

    private final ConditionVariable mDisconnected = new ConditionVariable();
    private final ConditionVariable mPreventReconnectReceived = new ConditionVariable();
@@ -115,13 +116,19 @@ public class NetworkAgentWrapper implements TestableNetworkCallback.HasNetwork {
        mHandlerThread = new HandlerThread(mLogTag);
        mHandlerThread.start();

        mNetworkAgent = makeNetworkAgent(linkProperties, type, typeName);
        // extraInfo is set to "" by default in NetworkAgentConfig.
        final String extraInfo = (transport == TRANSPORT_CELLULAR) ? "internet.apn" : "";
        mNetworkAgentConfig = new NetworkAgentConfig.Builder()
                .setLegacyType(type)
                .setLegacyTypeName(typeName)
                .setLegacyExtraInfo(extraInfo)
                .build();
        mNetworkAgent = makeNetworkAgent(linkProperties, mNetworkAgentConfig);
    }

    protected InstrumentedNetworkAgent makeNetworkAgent(LinkProperties linkProperties,
            final int type, final String typeName)
            throws Exception {
        return new InstrumentedNetworkAgent(this, linkProperties, type, typeName);
            final NetworkAgentConfig nac) throws Exception {
        return new InstrumentedNetworkAgent(this, linkProperties, nac);
    }

    public static class InstrumentedNetworkAgent extends NetworkAgent {
@@ -129,11 +136,9 @@ public class NetworkAgentWrapper implements TestableNetworkCallback.HasNetwork {
        private static final String PROVIDER_NAME = "InstrumentedNetworkAgentProvider";

        public InstrumentedNetworkAgent(NetworkAgentWrapper wrapper, LinkProperties lp,
                final int type, final String typeName) {
                NetworkAgentConfig nac) {
            super(wrapper.mContext, wrapper.mHandlerThread.getLooper(), wrapper.mLogTag,
                    wrapper.mNetworkCapabilities, lp, wrapper.mScore,
                    new NetworkAgentConfig.Builder()
                            .setLegacyType(type).setLegacyTypeName(typeName).build(),
                    wrapper.mNetworkCapabilities, lp, wrapper.mScore, nac,
                    new NetworkProvider(wrapper.mContext, wrapper.mHandlerThread.getLooper(),
                            PROVIDER_NAME));
            mWrapper = wrapper;
@@ -301,6 +306,14 @@ public class NetworkAgentWrapper implements TestableNetworkCallback.HasNetwork {
        return mNetworkCapabilities;
    }

    public int getLegacyType() {
        return mNetworkAgentConfig.getLegacyType();
    }

    public String getExtraInfo() {
        return mNetworkAgentConfig.getLegacyExtraInfo();
    }

    public @NonNull ArrayTrackRecord<CallbackType>.ReadHead getCallbackHistory() {
        return mCallbackHistory;
    }
+3 −3
Original line number Diff line number Diff line
@@ -720,7 +720,7 @@ public class ConnectivityServiceTest {
        @Override
        protected InstrumentedNetworkAgent makeNetworkAgent(LinkProperties linkProperties,
                final int type, final String typeName) throws Exception {
                NetworkAgentConfig nac) throws Exception {
            mNetworkMonitor = mock(INetworkMonitor.class);
            final Answer validateAnswer = inv -> {
@@ -739,8 +739,8 @@ public class ConnectivityServiceTest {
                    any() /* name */,
                    nmCbCaptor.capture());
            final InstrumentedNetworkAgent na = new InstrumentedNetworkAgent(this, linkProperties,
                    type, typeName) {
            final InstrumentedNetworkAgent na =
                    new InstrumentedNetworkAgent(this, linkProperties, nac) {
                @Override
                public void networkStatus(int status, String redirectUrl) {
                    mRedirectUrl = redirectUrl;