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
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user