summaryrefslogtreecommitdiff
path: root/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2023-04-16 00:23:02 +0200
committercyBerta <cyberta@riseup.net>2023-04-16 00:23:19 +0200
commitc2c3e13455ecfa310711e78aa830d14804aaaa5c (patch)
treeb8b01db0046caac9aa31e1537f3151ee17371c57 /app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java
parent601a77ad059b3da754c3baaf10b01dbc19b927be (diff)
only take experimental transports into consideration in case the user switched the experimental transport toggle
Diffstat (limited to 'app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java')
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java b/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java
index 998ed2fd..ee6ccce5 100644
--- a/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java
@@ -16,6 +16,7 @@ import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
import de.blinkt.openvpn.VpnProfile;
@@ -215,6 +216,88 @@ public class GatewaysManagerTest {
}
@Test
+ public void TestSelectN_select_includeExperimentalTransport_DecoupledPortHoppingGW() {
+ Provider provider = getProvider(null, null, null, null, null, null, "decoupled_pt_portHopping.eip-service.json", null);
+
+ MockHelper.mockProviderObservable(provider);
+ mockStatic(PreferenceHelper.class);
+ when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(true);
+ when(PreferenceHelper.allowExperimentalTransports(any(Context.class))).thenReturn(true);
+ GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
+ ArrayList<String> hosts = new ArrayList<>();
+ hosts.add(gatewaysManager.select(0).gateway.getHost());
+ hosts.add(gatewaysManager.select(1).gateway.getHost());
+
+ assertTrue(hosts.contains("bridge-nyc1-02.bitmask-dev.leapvpn.net"));
+ assertTrue(hosts.contains("bridge-nyc1-01.bitmask-dev.leapvpn.net"));
+
+ }
+
+ @Test
+ public void TestSelectN_select_includeExperimentalTransport_DecoupledPortAndIPHoppingGW() {
+ Provider provider = getProvider(null, null, null, null, null, null, "decoupled_pt.eip-service.json", null);
+
+ MockHelper.mockProviderObservable(provider);
+ mockStatic(PreferenceHelper.class);
+ when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(true);
+ when(PreferenceHelper.allowExperimentalTransports(any(Context.class))).thenReturn(true);
+ GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
+
+ ArrayList<String> hosts = new ArrayList<>();
+ hosts.add(gatewaysManager.select(0).gateway.getHost());
+ hosts.add(gatewaysManager.select(1).gateway.getHost());
+ assertTrue(hosts.contains("bridge-nyc1-02.bitmask-dev.leapvpn.net"));
+ assertTrue(hosts.contains("bridge-nyc1-01.bitmask-dev.leapvpn.net"));
+ }
+
+ @Test
+ public void TestSelectN_select_excludeExperimentalTransport_DecoupledPortHoppingGW() {
+ Provider provider = getProvider(null, null, null, null, null, null, "decoupled_pt_portHopping.eip-service.json", null);
+
+ MockHelper.mockProviderObservable(provider);
+ mockStatic(PreferenceHelper.class);
+ when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(true);
+ when(PreferenceHelper.allowExperimentalTransports(any(Context.class))).thenReturn(false);
+
+ for (int i = 0; i < 1000; i++) {
+ GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
+ assertEquals("bridge-nyc1-01.bitmask-dev.leapvpn.net", gatewaysManager.select(0).gateway.getHost());
+ }
+ }
+
+ @Test
+ public void TestSelectN_select_excludeExperimentalTransport_DecoupledPortAndIPHoppingGW() {
+ Provider provider = getProvider(null, null, null, null, null, null, "decoupled_pt.eip-service.json", null);
+
+ MockHelper.mockProviderObservable(provider);
+ mockStatic(PreferenceHelper.class);
+ when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(true);
+ when(PreferenceHelper.allowExperimentalTransports(any(Context.class))).thenReturn(false);
+ GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
+
+ assertEquals("bridge-nyc1-01.bitmask-dev.leapvpn.net", gatewaysManager.select(0).gateway.getHost());
+ assertNull(gatewaysManager.select(1));
+ }
+
+ @Test
+ public void TestSelectN_select_excludeExperimentalTransport_InGatewayHoppingPTBridge() {
+ Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_obfs4hop_tcp_gateways.json", null);
+
+ MockHelper.mockProviderObservable(provider);
+ mockStatic(PreferenceHelper.class);
+ when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(true);
+ when(PreferenceHelper.allowExperimentalTransports(any(Context.class))).thenReturn(false);
+ GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
+
+ ArrayList<String> hosts = new ArrayList<>();
+ hosts.add(gatewaysManager.select(0).gateway.getHost());
+ hosts.add(gatewaysManager.select(1).gateway.getHost());
+
+ assertTrue(hosts.contains("pt.demo.bitmask.net"));
+ assertTrue(hosts.contains("manila.bitmask.net"));
+ }
+
+ @Test
public void testSelectN_selectFromPresortedGateways_returnsGatewaysInPresortedOrder() {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_three_mixed_gateways.json", "ptdemo_three_mixed_gateways.geoip.json");
@@ -555,6 +638,16 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "decoupled_pt.eip-service.json", null);
MockHelper.mockProviderObservable(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
+ assertEquals(2, gatewaysManager.size());
+ }
+
+ @Test
+ public void testGatewayManagerFromCurrentProvider_decoupledBridgesIncludingExperimental_threeGateways() throws IOException, NullPointerException {
+ Provider provider = getProvider(null, null, null, null, null, null, "decoupled_pt.eip-service.json", null);
+ MockHelper.mockProviderObservable(provider);
+ mockStatic(PreferenceHelper.class);
+ when(PreferenceHelper.allowExperimentalTransports(any(Context.class))).thenReturn(true);
+ GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals(3, gatewaysManager.size());
}