diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-03-06 09:10:00 +0100 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-03-25 17:17:00 +0100 |
| commit | db66c85daab1ba708b282b5243d7835beb615b3b (patch) | |
| tree | fe1b75670efe95c0bcb5f17491161249b8acda21 /android/app/src/androidTest | |
| parent | b582c60162fac40a831d0ef56089c94e491e959b (diff) | |
| download | mullvadvpn-db66c85daab1ba708b282b5243d7835beb615b3b.tar.xz mullvadvpn-db66c85daab1ba708b282b5243d7835beb615b3b.zip | |
Avoid using an unavailable ip version to connect to a relay
Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net>
Diffstat (limited to 'android/app/src/androidTest')
| -rw-r--r-- | android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/talpid/util/ConnectivityManagerUtilKtTest.kt | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/talpid/util/ConnectivityManagerUtilKtTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/talpid/util/ConnectivityManagerUtilKtTest.kt index 354b6f585d..39df5de05b 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/talpid/util/ConnectivityManagerUtilKtTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/talpid/util/ConnectivityManagerUtilKtTest.kt @@ -20,6 +20,7 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.test.runTest import net.mullvad.talpid.model.Connectivity +import net.mullvad.talpid.model.IpAvailability import net.mullvad.talpid.util.NetworkEvent import net.mullvad.talpid.util.UnderlyingConnectivityStatusResolver import net.mullvad.talpid.util.defaultNetworkEvents @@ -53,7 +54,7 @@ class ConnectivityManagerUtilKtTest { connectivityManager.hasInternetConnectivity(mockResolver).test { // Since initial state and listener both return `true` within debounce we only see one // event - assertEquals(Connectivity.Status(true, true), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv4AndIpv6), awaitItem()) expectNoEvents() } } @@ -66,7 +67,7 @@ class ConnectivityManagerUtilKtTest { connectivityManager.hasInternetConnectivity(mockResolver).test { // Initially offline and no network events, so we should get a single `false` event - assertEquals(Connectivity.Status(false, false), awaitItem()) + assertEquals(Connectivity.Offline, awaitItem()) expectNoEvents() } } @@ -88,8 +89,8 @@ class ConnectivityManagerUtilKtTest { } connectivityManager.hasInternetConnectivity(mockResolver).test { - assertEquals(Connectivity.Status(false, false), awaitItem()) - assertEquals(Connectivity.Status(true, true), awaitItem()) + assertEquals(Connectivity.Offline, awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv4AndIpv6), awaitItem()) expectNoEvents() } } @@ -113,8 +114,8 @@ class ConnectivityManagerUtilKtTest { } connectivityManager.hasInternetConnectivity(mockResolver).test { - assertEquals(Connectivity.Status(true, true), awaitItem()) - assertEquals(Connectivity.Status(false, false), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv4AndIpv6), awaitItem()) + assertEquals(Connectivity.Offline, awaitItem()) expectNoEvents() } } @@ -150,7 +151,7 @@ class ConnectivityManagerUtilKtTest { connectivityManager.hasInternetConnectivity(mockResolver).test { // We should always only see us being online - assertEquals(Connectivity.Status(ipv4 = true, ipv6 = false), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv4), awaitItem()) expectNoEvents() } } @@ -184,7 +185,7 @@ class ConnectivityManagerUtilKtTest { connectivityManager.hasInternetConnectivity(mockResolver).test { // We should always only see us being online, small offline state is caught by debounce - assertEquals(Connectivity.Status(ipv4 = true, ipv6 = false), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv4), awaitItem()) expectNoEvents() } } @@ -218,11 +219,11 @@ class ConnectivityManagerUtilKtTest { connectivityManager.hasInternetConnectivity(mockResolver).test { // Wifi is online - assertEquals(Connectivity.Status(false, true), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv6), awaitItem()) // We didn't get any network within debounce time, so we are offline - assertEquals(Connectivity.Status(false, false), awaitItem()) + assertEquals(Connectivity.Offline, awaitItem()) // Cellular network is online - assertEquals(Connectivity.Status(false, true), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv6), awaitItem()) expectNoEvents() } } @@ -250,9 +251,9 @@ class ConnectivityManagerUtilKtTest { connectivityManager.hasInternetConnectivity(mockResolver).test { // Ipv6 network is online - assertEquals(Connectivity.Status(false, true), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv6), awaitItem()) // Ipv4 network is online - assertEquals(Connectivity.Status(true, false), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv4), awaitItem()) expectNoEvents() } } @@ -265,7 +266,8 @@ class ConnectivityManagerUtilKtTest { every { capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) } returns false val mockResolver = mockk<UnderlyingConnectivityStatusResolver>() - every { mockResolver.currentStatus() } returns Connectivity.Status(true, true) + every { mockResolver.currentStatus() } returns + Connectivity.Online(IpAvailability.Ipv4AndIpv6) every { connectivityManager.defaultNetworkEvents() } returns callbackFlow { @@ -276,7 +278,7 @@ class ConnectivityManagerUtilKtTest { connectivityManager.hasInternetConnectivity(mockResolver).test { // Network is online - assertEquals(Connectivity.Status(true, true), awaitItem()) + assertEquals(Connectivity.Online(IpAvailability.Ipv4AndIpv6), awaitItem()) } verify(exactly = 1) { mockResolver.currentStatus() } |
