Merge "Specify which callback is unexpected in testMobileDataPreferredUids"
This commit is contained in:
@@ -2829,6 +2829,19 @@ public class ConnectivityManagerTest {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The networks used in this test are real networks and as such they can see seemingly random
|
||||||
|
* updates of their capabilities or link properties as conditions change, e.g. the network
|
||||||
|
* loses validation or IPv4 shows up. Many tests should simply treat these callbacks as
|
||||||
|
* spurious.
|
||||||
|
*/
|
||||||
|
private void assertNoCallbackExceptCapOrLpChange(
|
||||||
|
@NonNull final TestableNetworkCallback cb) {
|
||||||
|
cb.assertNoCallbackThat(NO_CALLBACK_TIMEOUT_MS,
|
||||||
|
c -> !(c instanceof CallbackEntry.CapabilitiesChanged
|
||||||
|
|| c instanceof CallbackEntry.LinkPropertiesChanged));
|
||||||
|
}
|
||||||
|
|
||||||
@AppModeFull(reason = "Cannot get WifiManager in instant app mode")
|
@AppModeFull(reason = "Cannot get WifiManager in instant app mode")
|
||||||
@Test
|
@Test
|
||||||
public void testMobileDataPreferredUids() throws Exception {
|
public void testMobileDataPreferredUids() throws Exception {
|
||||||
@@ -2861,8 +2874,7 @@ public class ConnectivityManagerTest {
|
|||||||
// CtsNetTestCases uid is not listed in MOBILE_DATA_PREFERRED_UIDS setting, so the
|
// CtsNetTestCases uid is not listed in MOBILE_DATA_PREFERRED_UIDS setting, so the
|
||||||
// per-app default network should be same as system default network.
|
// per-app default network should be same as system default network.
|
||||||
waitForAvailable(systemDefaultCb, wifiNetwork);
|
waitForAvailable(systemDefaultCb, wifiNetwork);
|
||||||
defaultTrackingCb.eventuallyExpect(CallbackEntry.AVAILABLE, NETWORK_CALLBACK_TIMEOUT_MS,
|
waitForAvailable(defaultTrackingCb, wifiNetwork);
|
||||||
entry -> wifiNetwork.equals(entry.getNetwork()));
|
|
||||||
// Active network for CtsNetTestCases uid should be wifi now.
|
// Active network for CtsNetTestCases uid should be wifi now.
|
||||||
assertEquals(wifiNetwork, mCm.getActiveNetwork());
|
assertEquals(wifiNetwork, mCm.getActiveNetwork());
|
||||||
|
|
||||||
@@ -2872,10 +2884,10 @@ public class ConnectivityManagerTest {
|
|||||||
newMobileDataPreferredUids.add(uid);
|
newMobileDataPreferredUids.add(uid);
|
||||||
ConnectivitySettingsManager.setMobileDataPreferredUids(
|
ConnectivitySettingsManager.setMobileDataPreferredUids(
|
||||||
mContext, newMobileDataPreferredUids);
|
mContext, newMobileDataPreferredUids);
|
||||||
defaultTrackingCb.eventuallyExpect(CallbackEntry.AVAILABLE, NETWORK_CALLBACK_TIMEOUT_MS,
|
waitForAvailable(defaultTrackingCb, cellNetwork);
|
||||||
entry -> cellNetwork.equals(entry.getNetwork()));
|
// No change for system default network. Expect no callback except CapabilitiesChanged
|
||||||
// System default network doesn't change.
|
// or LinkPropertiesChanged which may be triggered randomly from wifi network.
|
||||||
systemDefaultCb.assertNoCallback();
|
assertNoCallbackExceptCapOrLpChange(systemDefaultCb);
|
||||||
// Active network for CtsNetTestCases uid should change to cell, too.
|
// Active network for CtsNetTestCases uid should change to cell, too.
|
||||||
assertEquals(cellNetwork, mCm.getActiveNetwork());
|
assertEquals(cellNetwork, mCm.getActiveNetwork());
|
||||||
|
|
||||||
@@ -2884,10 +2896,10 @@ public class ConnectivityManagerTest {
|
|||||||
newMobileDataPreferredUids.remove(uid);
|
newMobileDataPreferredUids.remove(uid);
|
||||||
ConnectivitySettingsManager.setMobileDataPreferredUids(
|
ConnectivitySettingsManager.setMobileDataPreferredUids(
|
||||||
mContext, newMobileDataPreferredUids);
|
mContext, newMobileDataPreferredUids);
|
||||||
defaultTrackingCb.eventuallyExpect(CallbackEntry.AVAILABLE, NETWORK_CALLBACK_TIMEOUT_MS,
|
waitForAvailable(defaultTrackingCb, wifiNetwork);
|
||||||
entry -> wifiNetwork.equals(entry.getNetwork()));
|
// No change for system default network. Expect no callback except CapabilitiesChanged
|
||||||
// System default network still doesn't change.
|
// or LinkPropertiesChanged which may be triggered randomly from wifi network.
|
||||||
systemDefaultCb.assertNoCallback();
|
assertNoCallbackExceptCapOrLpChange(systemDefaultCb);
|
||||||
// Active network for CtsNetTestCases uid should change back to wifi.
|
// Active network for CtsNetTestCases uid should change back to wifi.
|
||||||
assertEquals(wifiNetwork, mCm.getActiveNetwork());
|
assertEquals(wifiNetwork, mCm.getActiveNetwork());
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user