diff options
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.java | 94 |
1 files changed, 64 insertions, 30 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 729abcdf..56242396 100644 --- a/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java +++ b/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java @@ -22,6 +22,7 @@ import de.blinkt.openvpn.VpnProfile; import de.blinkt.openvpn.core.ConfigParser; import de.blinkt.openvpn.core.connection.Connection; import se.leap.bitmaskclient.base.models.Location; +import se.leap.bitmaskclient.base.models.Pair; import se.leap.bitmaskclient.base.models.Provider; import se.leap.bitmaskclient.base.models.ProviderObservable; import se.leap.bitmaskclient.base.utils.ConfigHelper; @@ -31,6 +32,7 @@ import se.leap.bitmaskclient.testutils.MockSharedPreferences; import se.leap.bitmaskclient.testutils.TestSetupHelper; import static de.blinkt.openvpn.core.connection.Connection.TransportType.OBFS4; +import static de.blinkt.openvpn.core.connection.Connection.TransportType.OBFS4_KCP; import static de.blinkt.openvpn.core.connection.Connection.TransportType.OPENVPN; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNull; @@ -115,7 +117,7 @@ public class GatewaysManagerTest { MockHelper.mockProviderObservable(provider); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false); + VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false, false); VpnProfile profile = configGenerator.createProfile(OBFS4); profile.mGatewayIp = "37.218.247.60"; @@ -130,7 +132,7 @@ public class GatewaysManagerTest { MockHelper.mockProviderObservable(provider); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false); + VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false, false); VpnProfile profile = configGenerator.createProfile(OPENVPN); profile.mGatewayIp = "37.218.247.60"; @@ -145,7 +147,7 @@ public class GatewaysManagerTest { MockHelper.mockProviderObservable(provider); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false); + VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false, false); VpnProfile profile = configGenerator.createProfile(OBFS4); profile.mGatewayIp = "37.218.247.60"; @@ -160,7 +162,7 @@ public class GatewaysManagerTest { MockHelper.mockProviderObservable(provider); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false); + VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false, false); VpnProfile profile = configGenerator.createProfile(OPENVPN); profile.mGatewayIp = "37.218.247.60"; @@ -175,7 +177,7 @@ public class GatewaysManagerTest { MockHelper.mockProviderObservable(provider); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false); + VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false, false); VpnProfile profile = configGenerator.createProfile(OBFS4); profile.mGatewayIp = "37.218.247.61"; @@ -190,7 +192,7 @@ public class GatewaysManagerTest { MockHelper.mockProviderObservable(provider); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false); + VpnConfigGenerator configGenerator = new VpnConfigGenerator(provider.getDefinition(), secrets, gateway1, 3, false, false); VpnProfile profile = configGenerator.createProfile(OBFS4); profile.mGatewayIp = "3.21.247.89"; @@ -206,7 +208,7 @@ public class GatewaysManagerTest { when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(true); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("37.12.247.10", gatewaysManager.select(0).getRemoteIP()); + assertEquals("37.12.247.10", gatewaysManager.select(0).first.getRemoteIP()); } @Test @@ -219,9 +221,9 @@ public class GatewaysManagerTest { when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(false); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("manila.bitmask.net", gatewaysManager.select(0).getHost()); - assertEquals("moscow.bitmask.net", gatewaysManager.select(1).getHost()); - assertEquals("pt.demo.bitmask.net", gatewaysManager.select(2).getHost()); + assertEquals("manila.bitmask.net", gatewaysManager.select(0).first.getHost()); + assertEquals("moscow.bitmask.net", gatewaysManager.select(1).first.getHost()); + assertEquals("pt.demo.bitmask.net", gatewaysManager.select(2).first.getHost()); } @Test @@ -234,8 +236,8 @@ public class GatewaysManagerTest { when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(true); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("moscow.bitmask.net", gatewaysManager.select(0).getHost()); - assertEquals("pt.demo.bitmask.net", gatewaysManager.select(1).getHost()); + assertEquals("moscow.bitmask.net", gatewaysManager.select(0).first.getHost()); + assertEquals("pt.demo.bitmask.net", gatewaysManager.select(1).first.getHost()); assertNull(gatewaysManager.select(2)); } @@ -251,9 +253,9 @@ public class GatewaysManagerTest { when(PreferenceHelper.getPreferredCity(any(Context.class))).thenReturn("Paris"); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("mouette.riseup.net", gatewaysManager.select(0).getHost()); - assertEquals("hoatzin.riseup.net", gatewaysManager.select(1).getHost()); - assertEquals("zarapito.riseup.net", gatewaysManager.select(2).getHost()); + assertEquals("mouette.riseup.net", gatewaysManager.select(0).first.getHost()); + assertEquals("hoatzin.riseup.net", gatewaysManager.select(1).first.getHost()); + assertEquals("zarapito.riseup.net", gatewaysManager.select(2).first.getHost()); } @Test @@ -267,9 +269,9 @@ public class GatewaysManagerTest { when(PreferenceHelper.getPreferredCity(any(Context.class))).thenReturn("Paris"); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("mouette.riseup.net", gatewaysManager.select(0).getHost()); - assertEquals("hoatzin.riseup.net", gatewaysManager.select(1).getHost()); - assertEquals("zarapito.riseup.net", gatewaysManager.select(2).getHost()); + assertEquals("mouette.riseup.net", gatewaysManager.select(0).first.getHost()); + assertEquals("hoatzin.riseup.net", gatewaysManager.select(1).first.getHost()); + assertEquals("zarapito.riseup.net", gatewaysManager.select(2).first.getHost()); } @Test @@ -284,9 +286,9 @@ public class GatewaysManagerTest { when(PreferenceHelper.getPreferredCity(any(Context.class))).thenReturn("Paris"); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("Paris", gatewaysManager.select(0).getName()); - assertEquals("Paris", gatewaysManager.select(1).getName()); - assertEquals("Paris", gatewaysManager.select(2).getName()); + assertEquals("Paris", gatewaysManager.select(0).first.getName()); + assertEquals("Paris", gatewaysManager.select(1).first.getName()); + assertEquals("Paris", gatewaysManager.select(2).first.getName()); assertEquals(null, gatewaysManager.select(3)); } @@ -300,9 +302,9 @@ public class GatewaysManagerTest { when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(false); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("mouette.riseup.net", gatewaysManager.select(0, "Paris").getHost()); - assertEquals("hoatzin.riseup.net", gatewaysManager.select(1, "Paris").getHost()); - assertEquals("zarapito.riseup.net", gatewaysManager.select(2, "Paris").getHost()); + assertEquals("mouette.riseup.net", gatewaysManager.select(0, "Paris").first.getHost()); + assertEquals("hoatzin.riseup.net", gatewaysManager.select(1, "Paris").first.getHost()); + assertEquals("zarapito.riseup.net", gatewaysManager.select(2, "Paris").first.getHost()); } @Test @@ -315,9 +317,9 @@ public class GatewaysManagerTest { when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(false); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("mouette.riseup.net", gatewaysManager.select(0, "Paris").getHost()); - assertEquals("hoatzin.riseup.net", gatewaysManager.select(1, "Paris").getHost()); - assertEquals("zarapito.riseup.net", gatewaysManager.select(2, "Paris").getHost()); + assertEquals("mouette.riseup.net", gatewaysManager.select(0, "Paris").first.getHost()); + assertEquals("hoatzin.riseup.net", gatewaysManager.select(1, "Paris").first.getHost()); + assertEquals("zarapito.riseup.net", gatewaysManager.select(2, "Paris").first.getHost()); } @Test @@ -331,9 +333,9 @@ public class GatewaysManagerTest { when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(false); GatewaysManager gatewaysManager = new GatewaysManager(mockContext); - assertEquals("Paris", gatewaysManager.select(0, "Paris").getName()); - assertEquals("Paris", gatewaysManager.select(1, "Paris").getName()); - assertEquals("Paris", gatewaysManager.select(2, "Paris").getName()); + assertEquals("Paris", gatewaysManager.select(0, "Paris").first.getName()); + assertEquals("Paris", gatewaysManager.select(1, "Paris").first.getName()); + assertEquals("Paris", gatewaysManager.select(2, "Paris").first.getName()); assertEquals(null, gatewaysManager.select(3, "Paris")); } @@ -509,6 +511,38 @@ public class GatewaysManagerTest { assertEquals("Amsterdam", locations.get(2).getName()); } + // Currently all pluggable transports are handled the same, there's no UI to select a specific one + // when requesting a sorted list for any pluggabled transport, a sorted list of all pluiggable transports + // will be returned + @Test + public void testGetSortedLocations_obfs4kcp_generalizedAsPT() { + Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v4_bad_obfs4_gateway.json"); + + MockHelper.mockProviderObservable(provider); + mockStatic(PreferenceHelper.class); + when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(false); + GatewaysManager gatewaysManager = new GatewaysManager(mockContext); + List<Location> locations = gatewaysManager.getSortedGatewayLocations(OBFS4_KCP); + + assertEquals(3, locations.size()); + } + + @Test + public void testgetAverageLoad_isSameForAllTransports() { + Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_kcp_gateways.json", "ptdemo_kcp_gateways_geoip.json"); + + MockHelper.mockProviderObservable(provider); + mockStatic(PreferenceHelper.class); + when(PreferenceHelper.getUseBridges(any(Context.class))).thenReturn(false); + GatewaysManager gatewaysManager = new GatewaysManager(mockContext); + + assertEquals(0.3, gatewaysManager.getLocation("Amsterdam").getAverageLoad(OBFS4_KCP)); + assertEquals(0.3, gatewaysManager.getLocation("Amsterdam").getAverageLoad(OBFS4)); + assertEquals(0.3, gatewaysManager.getLocation("Amsterdam").getAverageLoad(OPENVPN)); + } + + + @Test public void testGetLoadForLocation_() { MockHelper.mockProviderObservable(null); |