summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-18 23:20:33 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-18 23:20:33 +0000
commit58d56e37e059c58c37d56e0f19801f543ad7f372 (patch)
treec741e4ffc6d9ac52c61035b0a7f603d88958d381
parent73eecb8d81d6f569f493728b85dd3d927dd4dda8 (diff)
parent8083fcf496e69161e646e4478a58f88ff2b2e580 (diff)
downloadIwlan-58d56e37e059c58c37d56e0f19801f543ad7f372.tar.gz
Snap for 10515480 from 8083fcf496e69161e646e4478a58f88ff2b2e580 to udc-qpr1-release
Change-Id: I74c66ba07ea20fc8f44debe271bc19e0502caadf
-rw-r--r--src/com/google/android/iwlan/IwlanDataService.java4
-rw-r--r--test/com/google/android/iwlan/IwlanDataServiceTest.java34
2 files changed, 36 insertions, 2 deletions
diff --git a/src/com/google/android/iwlan/IwlanDataService.java b/src/com/google/android/iwlan/IwlanDataService.java
index b09b788..d4c7dce 100644
--- a/src/com/google/android/iwlan/IwlanDataService.java
+++ b/src/com/google/android/iwlan/IwlanDataService.java
@@ -1893,7 +1893,6 @@ public class IwlanDataService extends DataService {
}
sDefaultDataTransport = transport;
- sNetwork = network;
sNetworkConnected = networkConnected;
if (networkConnected) {
@@ -1916,7 +1915,7 @@ public class IwlanDataService extends DataService {
sLinkProperties = linkProperties;
for (IwlanDataServiceProvider dp : sIwlanDataServiceProviders.values()) {
dp.dnsPrefetchCheck();
- dp.updateNetwork(sNetwork, linkProperties);
+ dp.updateNetwork(network, linkProperties);
}
IwlanHelper.updateCountryCodeWhenNetworkConnected();
}
@@ -1929,6 +1928,7 @@ public class IwlanDataService extends DataService {
dp.forceCloseTunnelsInDeactivatingState();
}
}
+ sNetwork = network;
}
/**
diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java
index 2f8f2c3..b7cda5b 100644
--- a/test/com/google/android/iwlan/IwlanDataServiceTest.java
+++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java
@@ -1780,4 +1780,38 @@ public class IwlanDataServiceTest {
method.setAccessible(true);
return method.invoke(target, args);
}
+
+ @Test
+ public void testNetworkChangeDuringTunnelBringUp_closeTunnel() {
+ DataProfile dp = buildImsDataProfile();
+ Network newNetwork1 = createMockNetwork(mLinkProperties);
+ onSystemDefaultNetworkConnected(
+ newNetwork1, mLinkProperties, TRANSPORT_WIFI, DEFAULT_SUB_INDEX);
+
+ mSpyIwlanDataServiceProvider.setupDataCall(
+ AccessNetworkType.IWLAN, /* AccessNetworkType */
+ dp, /* dataProfile */
+ false, /* isRoaming */
+ true, /* allowRoaming */
+ DataService.REQUEST_REASON_NORMAL, /* DataService.REQUEST_REASON_NORMAL */
+ null, /* LinkProperties */
+ 1, /* pduSessionId */
+ null, /* sliceInfo */
+ null, /* trafficDescriptor */
+ true, /* matchAllRuleAllowed */
+ mMockDataServiceCallback);
+ mTestLooper.dispatchAll();
+
+ /* Check bringUpTunnel() is called. */
+ verify(mMockEpdgTunnelManager, times(1))
+ .bringUpTunnel(
+ any(TunnelSetupRequest.class),
+ any(IwlanTunnelCallback.class),
+ any(IwlanTunnelMetricsImpl.class));
+
+ Network newNetwork2 = createMockNetwork(mLinkProperties);
+ onSystemDefaultNetworkConnected(
+ newNetwork2, mLinkProperties, TRANSPORT_WIFI, DEFAULT_SUB_INDEX);
+ verify(mMockEpdgTunnelManager, times(1)).closeTunnel(any(), anyBoolean(), any(), any());
+ }
}