summaryrefslogtreecommitdiff
path: root/app/src/test/java/se/leap/bitmaskclient/eip
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/test/java/se/leap/bitmaskclient/eip')
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/eip/GatewaySelectorTest.java74
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java237
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java529
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/eip/VpnCertificateValidatorTest.java21
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/eip/VpnConfigGeneratorTest.java82
5 files changed, 415 insertions, 528 deletions
diff --git a/app/src/test/java/se/leap/bitmaskclient/eip/GatewaySelectorTest.java b/app/src/test/java/se/leap/bitmaskclient/eip/GatewaySelectorTest.java
index 74762813..0175745e 100644
--- a/app/src/test/java/se/leap/bitmaskclient/eip/GatewaySelectorTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/eip/GatewaySelectorTest.java
@@ -1,8 +1,10 @@
package se.leap.bitmaskclient.eip;
-import android.preference.PreferenceManager;
-import android.text.TextUtils;
-import android.util.Log;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertTrue;
+import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_PRIVATE_KEY;
+import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_VPN_CERTIFICATE;
+import static se.leap.bitmaskclient.testutils.TestSetupHelper.getInputAsString;
import com.tngtech.java.junit.dataprovider.DataProvider;
import com.tngtech.java.junit.dataprovider.DataProviderRunner;
@@ -14,35 +16,22 @@ import org.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.modules.junit4.PowerMockRunnerDelegate;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
import de.blinkt.openvpn.core.ConfigParser;
import se.leap.bitmaskclient.base.models.Provider;
-import se.leap.bitmaskclient.base.utils.ConfigHelper;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
+import se.leap.bitmaskclient.base.utils.TimezoneHelper;
import se.leap.bitmaskclient.testutils.MockSharedPreferences;
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.powermock.api.mockito.PowerMockito.mockStatic;
-import static org.powermock.api.mockito.PowerMockito.when;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_PRIVATE_KEY;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_VPN_CERTIFICATE;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockTextUtils;
-import static se.leap.bitmaskclient.testutils.TestSetupHelper.getInputAsString;
-
/**
* Created by cyberta on 18.12.18.
*/
-@RunWith(PowerMockRunner.class)
-@PowerMockRunnerDelegate(DataProviderRunner.class)
-@PrepareForTest({ConfigHelper.class, TextUtils.class})
+@RunWith(DataProviderRunner.class)
public class GatewaySelectorTest {
public static final String TAG = GatewaySelectorTest.class.getSimpleName();
@@ -72,23 +61,26 @@ public class GatewaySelectorTest {
PreferenceHelper preferenceHelper;
- GatewaySelector gatewaySelector;
JSONObject eipDefinition;
- ArrayList<Gateway> gatewayList = new ArrayList<>();
-
@Before
- public void setup() throws IOException, JSONException, ConfigParser.ConfigParseError {
- mockStatic(ConfigHelper.class);
- when(ConfigHelper.timezoneDistance(anyInt(), anyInt())).thenCallRealMethod();
- mockTextUtils();
+ public void setup() throws IOException, JSONException {
preferenceHelper = new PreferenceHelper(new MockSharedPreferences());
eipDefinition = new JSONObject(getInputAsString(getClass().getClassLoader().getResourceAsStream("eip-service-four-gateways.json")));
- JSONArray gateways = eipDefinition.getJSONArray("gateways");
- for (int i = 0; i < gateways.length(); i++) {
- JSONObject gw = gateways.getJSONObject(i);
- JSONObject secrets = secretsConfiguration();
- Gateway aux = new Gateway(eipDefinition, secrets, gw, null);
- gatewayList.add(aux);
+ }
+
+ private List<Gateway> getGateways() {
+ try {
+ Vector<Gateway> gatewayList = new Vector<>();
+ JSONArray gateways = eipDefinition.getJSONArray("gateways");
+ for (int i = 0; i < gateways.length(); i++) {
+ JSONObject gw = gateways.getJSONObject(i);
+ JSONObject secrets = secretsConfiguration();
+ Gateway aux = new Gateway(eipDefinition, secrets, gw, null);
+ gatewayList.add(aux);
+ }
+ return gatewayList;
+ } catch (JSONException | IOException | ConfigParser.ConfigParseError e) {
+ return new ArrayList<>();
}
}
@@ -149,24 +141,24 @@ public class GatewaySelectorTest {
@Test
@UseDataProvider("dataProviderTimezones")
public void testSelect(int timezone, String expected) {
- when(ConfigHelper.getCurrentTimezone()).thenReturn(timezone);
- gatewaySelector = new GatewaySelector(gatewayList);
+ TimezoneHelper timezoneHelper = new TimezoneHelper(() -> timezone);
+ GatewaySelector gatewaySelector = new GatewaySelector(getGateways());
assertEquals(expected, gatewaySelector.select().getName());
}
@Test
@UseDataProvider("dataProviderSameDistanceTimezones")
public void testSelectSameTimezoneDistance(int timezone, String expected1, String expected2) {
- when(ConfigHelper.getCurrentTimezone()).thenReturn(timezone);
- gatewaySelector = new GatewaySelector(gatewayList);
+ TimezoneHelper timezoneHelper = new TimezoneHelper(() -> timezone);
+ GatewaySelector gatewaySelector = new GatewaySelector(getGateways());
assertTrue(gatewaySelector.select().getName().equals(expected1) || gatewaySelector.select().getName().equals(expected2));
}
@Test
@UseDataProvider("dataProviderSameDistanceTimezones")
public void testNClostest_SameTimezoneDistance_chooseGatewayWithSameDistance(int timezone, String expected1, String expected2) {
- when(ConfigHelper.getCurrentTimezone()).thenReturn(timezone);
- gatewaySelector = new GatewaySelector(gatewayList);
+ TimezoneHelper timezoneHelper = new TimezoneHelper(() -> timezone);
+ GatewaySelector gatewaySelector = new GatewaySelector(getGateways());
ArrayList<String> gateways = new ArrayList<>();
gateways.add(gatewaySelector.select(0).getName());
gateways.add(gatewaySelector.select(1).getName());
@@ -177,8 +169,8 @@ public class GatewaySelectorTest {
@Test
public void testNClostest_OneTimezonePerSet_choseSecondClosestTimezone() {
- when(ConfigHelper.getCurrentTimezone()).thenReturn(-4);
- gatewaySelector = new GatewaySelector(gatewayList);
+ TimezoneHelper timezoneHelper = new TimezoneHelper(() -> -4);
+ GatewaySelector gatewaySelector = new GatewaySelector(getGateways());
assertTrue("Frankfurt".equals(gatewaySelector.select(1).getName()));
}
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 86373ff6..d66fedbe 100644
--- a/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/eip/GatewaysManagerTest.java
@@ -1,19 +1,30 @@
package se.leap.bitmaskclient.eip;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNull;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static de.blinkt.openvpn.core.connection.Connection.TransportType.OBFS4;
+import static de.blinkt.openvpn.core.connection.Connection.TransportType.OPENVPN;
+import static se.leap.bitmaskclient.base.models.Constants.ALLOW_EXPERIMENTAL_TRANSPORTS;
+import static se.leap.bitmaskclient.base.models.Constants.GATEWAYS;
+import static se.leap.bitmaskclient.base.models.Constants.PREFERRED_CITY;
+import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_EIP_DEFINITION;
+import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_PRIVATE_KEY;
+import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_VPN_CERTIFICATE;
+import static se.leap.bitmaskclient.base.models.Constants.USE_BRIDGES;
+import static se.leap.bitmaskclient.base.models.Provider.CA_CERT;
+import static se.leap.bitmaskclient.testutils.TestSetupHelper.getProvider;
+
import android.content.Context;
import android.content.SharedPreferences;
-import android.text.TextUtils;
-import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
import java.io.IOException;
import java.util.ArrayList;
@@ -21,42 +32,17 @@ import java.util.List;
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;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
-import se.leap.bitmaskclient.testutils.MockHelper;
+import se.leap.bitmaskclient.base.utils.TimezoneHelper;
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.OPENVPN;
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNull;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.when;
-import static org.powermock.api.mockito.PowerMockito.mockStatic;
-import static se.leap.bitmaskclient.base.models.Constants.GATEWAYS;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_EIP_DEFINITION;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_PRIVATE_KEY;
-import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_VPN_CERTIFICATE;
-import static se.leap.bitmaskclient.base.models.Constants.USE_BRIDGES;
-import static se.leap.bitmaskclient.base.models.Provider.CA_CERT;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockTextUtils;
-import static se.leap.bitmaskclient.testutils.TestSetupHelper.getProvider;
-
/**
* Created by cyberta on 09.10.17.
*/
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({ProviderObservable.class, Log.class, PreferenceHelper.class, ConfigHelper.class, TextUtils.class})
public class GatewaysManagerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -65,17 +51,15 @@ public class GatewaysManagerTest {
private SharedPreferences sharedPreferences;
private JSONObject secrets;
+ private TimezoneHelper timezoneHelper;
+ ProviderObservable providerObservable;
+
@Before
public void setUp() throws IOException, JSONException {
- mockStatic(Log.class);
- mockStatic(ConfigHelper.class);
- mockTextUtils();
- when(ConfigHelper.getCurrentTimezone()).thenReturn(-1);
- when(ConfigHelper.stringEqual(anyString(), anyString())).thenCallRealMethod();
- when(ConfigHelper.getConnectionQualityFromTimezoneDistance(anyInt())).thenCallRealMethod();
- when(ConfigHelper.isIPv4(anyString())).thenCallRealMethod();
- when(ConfigHelper.timezoneDistance(anyInt(), anyInt())).thenCallRealMethod();
+ timezoneHelper = new TimezoneHelper(() -> -1);
+ providerObservable = ProviderObservable.getInstance();
+
secrets = new JSONObject(getJsonStringFor("secrets.json"));
sharedPreferences = new MockSharedPreferences();
sharedPreferences.edit().
@@ -83,22 +67,20 @@ public class GatewaysManagerTest {
putString(CA_CERT, secrets.getString(CA_CERT)).
putString(PROVIDER_VPN_CERTIFICATE, secrets.getString(PROVIDER_VPN_CERTIFICATE))
.commit();
- mockStatic(PreferenceHelper.class);
PreferenceHelper preferenceHelper = new PreferenceHelper(sharedPreferences);
}
@Test
public void testGatewayManagerFromCurrentProvider_noProvider_noGateways() {
- MockHelper.mockProviderObservable(null);
+ providerObservable.updateProvider(null);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals(0, gatewaysManager.size());
}
@Test
public void testGatewayManagerFromCurrentProvider_threeGateways() {
- Provider provider = getProvider(null, null, null, null,null, null, "ptdemo_three_mixed_gateways.json", null);
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(getProvider(null, null, null, null,null, null, "ptdemo_three_mixed_gateways.json", null));
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals(3, gatewaysManager.size());
}
@@ -108,7 +90,7 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_three_mixed_gateways.json", null);
JSONObject eipServiceJson = provider.getEipServiceJson();
JSONObject gateway1 = eipServiceJson.getJSONArray(GATEWAYS).getJSONObject(0);
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -125,7 +107,7 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_three_mixed_gateways.json", null);
JSONObject eipServiceJson = provider.getEipServiceJson();
JSONObject gateway1 = eipServiceJson.getJSONArray(GATEWAYS).getJSONObject(0);
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -142,7 +124,7 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_three_mixed_gateways.json", "ptdemo_three_mixed_gateways.geoip.json");
JSONObject eipServiceJson = provider.getEipServiceJson();
JSONObject gateway1 = eipServiceJson.getJSONArray(GATEWAYS).getJSONObject(0);
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -159,7 +141,7 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_three_mixed_gateways.json", "ptdemo_three_mixed_gateways.geoip.json");
JSONObject eipServiceJson = provider.getEipServiceJson();
JSONObject gateway1 = eipServiceJson.getJSONArray(GATEWAYS).getJSONObject(0);
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -176,7 +158,7 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_three_mixed_gateways.json", null);
JSONObject eipServiceJson = provider.getEipServiceJson();
JSONObject gateway1 = eipServiceJson.getJSONArray(GATEWAYS).getJSONObject(0);
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -193,7 +175,7 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_three_mixed_gateways.json", null);
JSONObject eipServiceJson = provider.getEipServiceJson();
JSONObject gateway1 = eipServiceJson.getJSONArray(GATEWAYS).getJSONObject(1);
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -209,9 +191,8 @@ public class GatewaysManagerTest {
public void TestSelectN_selectFirstObfs4Connection_returnThirdGateway() {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_two_openvpn_one_pt_gateways.json", null);
- MockHelper.mockProviderObservable(provider);
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(true);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().putBoolean(USE_BRIDGES, true).commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("37.12.247.10", gatewaysManager.select(0).gateway.getRemoteIP());
@@ -221,10 +202,11 @@ public class GatewaysManagerTest {
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()).thenReturn(true);
- when(PreferenceHelper.allowExperimentalTransports()).thenReturn(true);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().
+ putBoolean(USE_BRIDGES, true).
+ putBoolean(ALLOW_EXPERIMENTAL_TRANSPORTS, true).
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
ArrayList<String> hosts = new ArrayList<>();
hosts.add(gatewaysManager.select(0).gateway.getHost());
@@ -239,10 +221,11 @@ public class GatewaysManagerTest {
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()).thenReturn(true);
- when(PreferenceHelper.allowExperimentalTransports()).thenReturn(true);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().
+ putBoolean(USE_BRIDGES, true).
+ putBoolean(ALLOW_EXPERIMENTAL_TRANSPORTS, true).
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
ArrayList<String> hosts = new ArrayList<>();
@@ -256,10 +239,11 @@ public class GatewaysManagerTest {
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()).thenReturn(true);
- when(PreferenceHelper.allowExperimentalTransports()).thenReturn(false);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().
+ putBoolean(USE_BRIDGES, true).
+ putBoolean(ALLOW_EXPERIMENTAL_TRANSPORTS, false).
+ commit();
for (int i = 0; i < 1000; i++) {
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
@@ -271,10 +255,11 @@ public class GatewaysManagerTest {
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()).thenReturn(true);
- when(PreferenceHelper.allowExperimentalTransports()).thenReturn(false);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().
+ putBoolean(USE_BRIDGES, true).
+ putBoolean(ALLOW_EXPERIMENTAL_TRANSPORTS, false).
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("bridge-nyc1-01.bitmask-dev.leapvpn.net", gatewaysManager.select(0).gateway.getHost());
@@ -285,10 +270,11 @@ public class GatewaysManagerTest {
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()).thenReturn(true);
- when(PreferenceHelper.allowExperimentalTransports()).thenReturn(false);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().
+ putBoolean(USE_BRIDGES, true).
+ putBoolean(ALLOW_EXPERIMENTAL_TRANSPORTS, false).
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
ArrayList<String> hosts = new ArrayList<>();
@@ -303,10 +289,7 @@ public class GatewaysManagerTest {
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");
- MockHelper.mockProviderObservable(provider);
- //use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("manila.bitmask.net", gatewaysManager.select(0).gateway.getHost());
@@ -318,10 +301,11 @@ public class GatewaysManagerTest {
public void testSelectN_selectObfs4FromPresortedGateways_returnsObfs4GatewaysInPresortedOrder() {
Provider provider = getProvider(null, null, null, null, null, null, "ptdemo_three_mixed_gateways.json", "ptdemo_three_mixed_gateways.geoip.json");
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
//use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(true);
+ sharedPreferences.edit().
+ putBoolean(USE_BRIDGES, true).
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("moscow.bitmask.net", gatewaysManager.select(0).gateway.getHost());
@@ -334,11 +318,11 @@ public class GatewaysManagerTest {
public void testSelectN_selectFromCity_returnsGatewaysInPresortedOrder() {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v4.json");
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
//use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
- when(PreferenceHelper.getPreferredCity()).thenReturn("Paris");
+ sharedPreferences.edit().
+ putString(PREFERRED_CITY, "Paris").
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("mouette.riseup.net", gatewaysManager.select(0).gateway.getHost());
@@ -350,11 +334,11 @@ public class GatewaysManagerTest {
public void testSelectN_selectFromCityWithGeoIpServiceV1_returnsGatewaysInPresortedOrder() {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v1.json");
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
//use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
- when(PreferenceHelper.getPreferredCity()).thenReturn("Paris");
+ sharedPreferences.edit().
+ putString(PREFERRED_CITY, "Paris").
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("mouette.riseup.net", gatewaysManager.select(0).gateway.getHost());
@@ -367,11 +351,11 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", null);
provider.setGeoIpJson(new JSONObject());
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
//use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
- when(PreferenceHelper.getPreferredCity()).thenReturn("Paris");
+ sharedPreferences.edit().
+ putString(PREFERRED_CITY, "Paris").
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("Paris", gatewaysManager.select(0).gateway.getName());
@@ -384,10 +368,7 @@ public class GatewaysManagerTest {
public void testSelectN_selectNAndCity_returnsGatewaysInPresortedOrder() {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v4.json");
- MockHelper.mockProviderObservable(provider);
- //use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("mouette.riseup.net", gatewaysManager.select(0, "Paris").gateway.getHost());
@@ -399,10 +380,7 @@ public class GatewaysManagerTest {
public void testSelectN_selectNAndCityWithGeoIpServiceV1_returnsGatewaysInPresortedOrder() {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v1.json");
- MockHelper.mockProviderObservable(provider);
- //use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("mouette.riseup.net", gatewaysManager.select(0, "Paris").gateway.getHost());
@@ -415,10 +393,7 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", null);
provider.setGeoIpJson(new JSONObject());
- MockHelper.mockProviderObservable(provider);
- //use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals("Paris", gatewaysManager.select(0, "Paris").gateway.getName());
@@ -432,10 +407,7 @@ public class GatewaysManagerTest {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v4.json");
provider.setGeoIpJson(new JSONObject());
- MockHelper.mockProviderObservable(provider);
- //use openvpn, not pluggable transports
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertNull(gatewaysManager.select(0, "Stockholm"));
}
@@ -444,9 +416,10 @@ public class GatewaysManagerTest {
public void testGetLocations_openvpn() {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v4.json");
- MockHelper.mockProviderObservable(provider);
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().
+ putString(PREFERRED_CITY, "Paris").
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
List<Location> locations = gatewaysManager.getGatewayLocations();
@@ -465,9 +438,7 @@ public class GatewaysManagerTest {
public void testGetLocations_obfs4() {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v4.json");
- MockHelper.mockProviderObservable(provider);
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(true);
+ providerObservable.updateProvider(provider);
sharedPreferences.edit().putBoolean(USE_BRIDGES, true).commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
List<Location> locations = gatewaysManager.getGatewayLocations();
@@ -496,9 +467,7 @@ public class GatewaysManagerTest {
public void testGetLocations_noMenshen_obfs4_calculateAverageLoadFromTimezoneDistance() {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v1.json");
- MockHelper.mockProviderObservable(provider);
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(true);
+ providerObservable.updateProvider(provider);
sharedPreferences.edit().putBoolean(USE_BRIDGES, true).commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
List<Location> locations = gatewaysManager.getGatewayLocations();
@@ -521,10 +490,7 @@ public class GatewaysManagerTest {
public void testGetLocations_noMenshen_openvpn_calculateAverageLoadFromTimezoneDistance() {
Provider provider = getProvider(null, null, null, null, null, null, "v4/riseup_eipservice_for_geoip_v4.json", "v4/riseup_geoip_v1.json");
- MockHelper.mockProviderObservable(provider);
- mockStatic(PreferenceHelper.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
- sharedPreferences.edit().putBoolean(USE_BRIDGES, false).commit();
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
List<Location> locations = gatewaysManager.getGatewayLocations();
@@ -547,9 +513,7 @@ public class GatewaysManagerTest {
public void testGetSortedLocations_openvpn() {
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()).thenReturn(false);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
List<Location> locations = gatewaysManager.getSortedGatewayLocations(OPENVPN);
@@ -576,9 +540,7 @@ public class GatewaysManagerTest {
public void testGetSortedLocations_obfs4() {
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()).thenReturn(false);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
List<Location> locations = gatewaysManager.getSortedGatewayLocations(OBFS4);
@@ -606,9 +568,7 @@ public class GatewaysManagerTest {
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()).thenReturn(false);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
List<Location> locations = gatewaysManager.getSortedGatewayLocations(OBFS4);
@@ -619,9 +579,10 @@ public class GatewaysManagerTest {
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()).thenReturn(false);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().
+ putString(PREFERRED_CITY, "Paris").
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals(0.3, gatewaysManager.getLocation("Amsterdam").getAverageLoad(OBFS4));
@@ -630,7 +591,7 @@ public class GatewaysManagerTest {
@Test
public void testGetLoadForLocation_() {
- MockHelper.mockProviderObservable(null);
+ providerObservable.updateProvider(null);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals(GatewaysManager.Load.UNKNOWN, gatewaysManager.getLoadForLocation("unknown city", OPENVPN));
}
@@ -638,7 +599,7 @@ public class GatewaysManagerTest {
@Test
public void testGatewayManagerFromCurrentProvider_decoupledBridges_twoGateways() throws IOException, NullPointerException {
Provider provider = getProvider(null, null, null, null, null, null, "decoupled_pt.eip-service.json", null);
- MockHelper.mockProviderObservable(provider);
+ providerObservable.updateProvider(provider);
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals(2, gatewaysManager.size());
}
@@ -646,9 +607,11 @@ public class GatewaysManagerTest {
@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()).thenReturn(true);
+ providerObservable.updateProvider(provider);
+ sharedPreferences.edit().
+ putBoolean(USE_BRIDGES, true).
+ putBoolean(ALLOW_EXPERIMENTAL_TRANSPORTS, true).
+ commit();
GatewaysManager gatewaysManager = new GatewaysManager(mockContext);
assertEquals(3, gatewaysManager.size());
}
diff --git a/app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java b/app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java
index 4af0d072..c6e548ce 100644
--- a/app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/eip/ProviderApiManagerTest.java
@@ -19,12 +19,11 @@ package se.leap.bitmaskclient.eip;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static se.leap.bitmaskclient.base.models.Constants.BROADCAST_RESULT_KEY;
import static se.leap.bitmaskclient.base.models.Constants.EIP_ACTION_START;
import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_KEY;
+import static se.leap.bitmaskclient.base.models.Constants.USE_BRIDGES;
+import static se.leap.bitmaskclient.base.models.Constants.USE_SNOWFLAKE;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.CORRECTLY_DOWNLOADED_GEOIP_JSON;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.CORRECTLY_UPDATED_INVALID_VPN_CERTIFICATE;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.ERRORS;
@@ -44,27 +43,25 @@ import static se.leap.bitmaskclient.testutils.BackendMockResponses.BackendMockPr
import static se.leap.bitmaskclient.testutils.BackendMockResponses.BackendMockProvider.TestBackendErrorCase.ERROR_GEOIP_SERVICE_IS_DOWN_TOR_FALLBACK;
import static se.leap.bitmaskclient.testutils.BackendMockResponses.BackendMockProvider.TestBackendErrorCase.NO_ERROR;
import static se.leap.bitmaskclient.testutils.BackendMockResponses.BackendMockProvider.TestBackendErrorCase.NO_ERROR_API_V4;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockBase64;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockBundle;
+import static se.leap.bitmaskclient.testutils.MockHelper.mockBuildConfigHelper;
+import static se.leap.bitmaskclient.testutils.MockHelper.mockCertificateHelper;
import static se.leap.bitmaskclient.testutils.MockHelper.mockClientGenerator;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockConfigHelper;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockIntent;
+import static se.leap.bitmaskclient.testutils.MockHelper.mockContext;
import static se.leap.bitmaskclient.testutils.MockHelper.mockPreferenceHelper;
import static se.leap.bitmaskclient.testutils.MockHelper.mockProviderApiConnector;
import static se.leap.bitmaskclient.testutils.MockHelper.mockRSAHelper;
import static se.leap.bitmaskclient.testutils.MockHelper.mockResources;
import static se.leap.bitmaskclient.testutils.MockHelper.mockResultReceiver;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockTextUtils;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockTorStatusObservable;
import static se.leap.bitmaskclient.testutils.TestSetupHelper.getConfiguredProvider;
import static se.leap.bitmaskclient.testutils.TestSetupHelper.getConfiguredProviderAPIv4;
import static se.leap.bitmaskclient.testutils.TestSetupHelper.getProvider;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.os.Bundle;
-import android.text.TextUtils;
import androidx.annotation.Nullable;
@@ -72,12 +69,6 @@ import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
@@ -86,13 +77,16 @@ import java.util.concurrent.TimeoutException;
import se.leap.bitmaskclient.BuildConfig;
import se.leap.bitmaskclient.base.models.Provider;
-import se.leap.bitmaskclient.base.utils.ConfigHelper;
+import se.leap.bitmaskclient.base.utils.BuildConfigHelper;
+import se.leap.bitmaskclient.base.utils.CertificateHelper;
+import se.leap.bitmaskclient.base.utils.HandlerProvider;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
+import se.leap.bitmaskclient.base.utils.RSAHelper;
import se.leap.bitmaskclient.providersetup.ProviderAPI;
import se.leap.bitmaskclient.providersetup.ProviderApiConnector;
import se.leap.bitmaskclient.providersetup.ProviderApiManager;
import se.leap.bitmaskclient.providersetup.ProviderApiManagerBase;
-import se.leap.bitmaskclient.providersetup.ProviderSetupObservable;
+import se.leap.bitmaskclient.testutils.MockSharedPreferences;
import se.leap.bitmaskclient.tor.TorStatusObservable;
@@ -100,13 +94,9 @@ import se.leap.bitmaskclient.tor.TorStatusObservable;
* Created by cyberta on 04.01.18.
*/
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({ProviderApiManager.class, TextUtils.class, ConfigHelper.RSAHelper.class, ConfigHelper.class, ProviderApiConnector.class, PreferenceHelper.class, TorStatusObservable.class, android.util.Base64.class, ProviderSetupObservable.class})
public class ProviderApiManagerTest {
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Resources mockResources;
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mockContext;
private ProviderApiManager providerApiManager;
@@ -114,12 +104,22 @@ public class ProviderApiManagerTest {
static class TestProviderApiServiceCallback implements ProviderApiManagerBase.ProviderApiServiceCallback {
Throwable startTorServiceException;
boolean hasNetworkConnection;
+ boolean torTimeout;
+ TorStatusObservable torStatusObservable;
+
TestProviderApiServiceCallback() {
this(null, true);
}
TestProviderApiServiceCallback(@Nullable Throwable startTorServiceException, boolean hasNetworkConnection) {
this.startTorServiceException = startTorServiceException;
this.hasNetworkConnection = hasNetworkConnection;
+ this.torStatusObservable = TorStatusObservable.getInstance();
+ }
+
+ TestProviderApiServiceCallback(boolean torTimeout, boolean hasNetworkConnection) {
+ this.hasNetworkConnection = hasNetworkConnection;
+ this.torStatusObservable = TorStatusObservable.getInstance();
+ this.torTimeout = torTimeout;
}
@Override
@@ -136,6 +136,13 @@ public class ProviderApiManagerTest {
throw (IllegalStateException) startTorServiceException;
}
}
+ if (!torTimeout) {
+ try {
+ TorStatusObservable.updateState(mockContext(), TorStatusObservable.TorStatus.ON.toString());
+ } catch (PackageManager.NameNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+ }
return true;
}
@@ -145,7 +152,7 @@ public class ProviderApiManagerTest {
@Override
public int getTorHttpTunnelPort() {
- return 0;
+ return 8118;
}
@Override
@@ -157,31 +164,32 @@ public class ProviderApiManagerTest {
@Before
public void setUp() throws Exception {
-
- Bundle bundle = mockBundle();
- PowerMockito.whenNew(Bundle.class).withAnyArguments().thenReturn(bundle);
- Intent intent = mockIntent();
- PowerMockito.whenNew(Intent.class).withAnyArguments().thenReturn(intent);
- mockTextUtils();
+ mockContext = mockContext();
mockResources = mockResources(getClass().getClassLoader().getResourceAsStream("error_messages.json"));
+ HandlerProvider handlerProvider = new HandlerProvider((r, delay) -> new Thread(r).start());
+ BuildConfigHelper buildConfigHelper = mockBuildConfigHelper(true, true);
+ TorStatusObservable torStatusObservable = TorStatusObservable.getInstance();
+ TorStatusObservable.setProxyPort(-1);
+ TorStatusObservable.setLastError(null);
+ TorStatusObservable.updateState(mockContext, TorStatusObservable.TorStatus.OFF.toString());
}
@Test
public void test_handleIntentSetupProvider_noProviderMainURL() throws IOException, JSONException {
Provider provider = new Provider("");
- mockPreferenceHelper(provider);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errors\":\"It doesn't seem to be a Bitmask provider.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, provider);
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
@@ -189,47 +197,42 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_happyPath_preseededProviderAndCA() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getConfiguredProvider();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR);
- mockStatic(ProviderSetupObservable.class);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector providerApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
-
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, true);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
-
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_OK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
-
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
@Test
public void test_handleIntentSetupProvider_happyPath_no_preseededProviderAndCA() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getConfiguredProvider();
- mockPreferenceHelper(provider);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR);
- mockStatic(ProviderSetupObservable.class);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, true);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_OK, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, provider);
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
@@ -237,21 +240,20 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_happyPath_storedProviderAndCAFromPreviousSetup() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = new Provider("https://riseup.net");
- mockPreferenceHelper(getConfiguredProvider());
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR);
- mockStatic(ProviderSetupObservable.class);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(getConfiguredProvider());
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, true);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_OK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiManager.handleIntent(providerApiCommand);
@@ -261,21 +263,19 @@ public class ProviderApiManagerTest {
public void test_handleIntentSetupProvider_preseededProviderAndCA_failedCAPinning() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getConfiguredProvider();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29495");
- mockProviderApiConnector(NO_ERROR);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29495");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errorId\":\"ERROR_CERTIFICATE_PINNING\",\"errors\":\"Stored provider certificate is invalid. You can either update Bitmask (recommended) or update the provider certificate using a commercial CA certificate.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
-
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
-
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiManager.handleIntent(providerApiCommand);
@@ -284,24 +284,21 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_no_preseededProviderAndCA_failedPinning() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = new Provider("https://riseup.net");
- mockPreferenceHelper(provider);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29495");
- mockProviderApiConnector(NO_ERROR);
- mockStatic(ProviderSetupObservable.class);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29495");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errorId\":\"ERROR_CERTIFICATE_PINNING\",\"errors\":\"Stored provider certificate is invalid. You can either update Bitmask (recommended) or update the provider certificate using a commercial CA certificate.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
-
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
-
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiManager.handleIntent(providerApiCommand);
@@ -311,21 +308,20 @@ public class ProviderApiManagerTest {
public void test_handleIntentSetupProvider_storedProviderAndCAFromPreviousSetup_failedPinning() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = new Provider("https://riseup.net");
mockPreferenceHelper(getConfiguredProvider());
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29495");
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29495");
- mockProviderApiConnector(NO_ERROR);
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errorId\":\"ERROR_CERTIFICATE_PINNING\",\"errors\":\"Stored provider certificate is invalid. You can either update Bitmask (recommended) or update the provider certificate using a commercial CA certificate.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
-
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiManager.handleIntent(providerApiCommand);
@@ -335,21 +331,20 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_preseededProviderAndCA_outdatedCertificate() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getProvider(null ,null, null, null, "outdated_cert.pem", null, null, null);
- mockPreferenceHelper(provider);
- mockProviderApiConnector(NO_ERROR);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errorId\":\"ERROR_INVALID_CERTIFICATE\",\"errors\":\"Stored provider certificate is expired. You can either update Bitmask (recommended) or update the provider certificate using a commercial CA certificate.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
-
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiManager.handleIntent(providerApiCommand);
@@ -358,22 +353,21 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_storedProviderAndCAFromPreviousSetup_outdatedCertificate() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getProvider(null, null, null, null, "outdated_cert.pem", "riseup.net.json", null, null);
- mockPreferenceHelper(provider);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
PreferenceHelper.getEipDefinitionFromPreferences();
- mockProviderApiConnector(NO_ERROR);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errorId\":\"ERROR_INVALID_CERTIFICATE\",\"errors\":\"Stored provider certificate is expired. You can either update Bitmask (recommended) or update the provider certificate using a commercial CA certificate.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
-
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiManager.handleIntent(providerApiCommand);
@@ -382,22 +376,21 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_preseededProviderAndCA_ValidCertificateButUpdatedCertificateOnServerSide() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getConfiguredProvider();
- mockPreferenceHelper(provider);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_CASE_UPDATED_CERTIFICATE);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_CASE_UPDATED_CERTIFICATE);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errorId\":\"ERROR_INVALID_CERTIFICATE\",\"errors\":\"Stored provider certificate is invalid. You can either update Bitmask (recommended) or update the provider certificate using a commercial CA certificate.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
-
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiManager.handleIntent(providerApiCommand);
@@ -406,22 +399,21 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_storedProviderAndCAFromPreviousSetup_ValidCertificateButUpdatedCertificateOnServerSide() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = new Provider("https://riseup.net");
- mockPreferenceHelper(getConfiguredProvider());
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_CASE_UPDATED_CERTIFICATE);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(getConfiguredProvider());
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_CASE_UPDATED_CERTIFICATE);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errorId\":\"ERROR_INVALID_CERTIFICATE\",\"errors\":\"Stored provider certificate is invalid. You can either update Bitmask (recommended) or update the provider certificate using a commercial CA certificate.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
-
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiManager.handleIntent(providerApiCommand);
@@ -431,55 +423,54 @@ public class ProviderApiManagerTest {
public void test_handleIntentSetupProvider_preseededProviderAndCA_failedConfiguration() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getConfiguredProvider();
- mockPreferenceHelper(provider);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_CASE_MICONFIGURED_PROVIDER);
- mockStatic(ProviderSetupObservable.class);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_CASE_MICONFIGURED_PROVIDER);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errors\":\"There was an error configuring Bitmask with your chosen provider.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
+
@Test
public void test_handleIntentSetupProvider_preseededCustomProviderAndCA_failedConfiguration() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
if ("insecure".equals(BuildConfig.FLAVOR_implementation )) {
return;
}
Provider provider = getConfiguredProvider();
- mockPreferenceHelper(provider);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
- mockProviderApiConnector(ERROR_CASE_MICONFIGURED_PROVIDER);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- when(ConfigHelper.isDefaultBitmask()).thenReturn(false);
- mockStatic(ProviderSetupObservable.class);
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_CASE_MICONFIGURED_PROVIDER);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ BuildConfigHelper buildConfigHelper = mockBuildConfigHelper(true, false);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errors\":\"There was an error configuring RiseupVPN.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
@@ -488,23 +479,22 @@ public class ProviderApiManagerTest {
public void test_handleIntentSetupProvider_outdatedPreseededProviderAndCA_successfulConfiguration() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getProvider(null, null, null, null, null, "riseup_net_outdated_config.json", null, null);
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR);
- mockStatic(ProviderSetupObservable.class);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, true);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_OK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
@@ -516,29 +506,26 @@ public class ProviderApiManagerTest {
}
Provider provider = new Provider("https://riseup.net");
- mockPreferenceHelper(provider);
-
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_CASE_FETCH_EIP_SERVICE_CERTIFICATE_INVALID);
- mockStatic(ProviderSetupObservable.class);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_CASE_FETCH_EIP_SERVICE_CERTIFICATE_INVALID);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putParcelable(PROVIDER_KEY, provider);
expectedResult.putString(ERRORS, "This is not a trusted Bitmask provider.");
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, provider);
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
-
@Test
public void test_handleIntentGetGeoip_happyPath() throws IOException, NoSuchAlgorithmException, CertificateEncodingException, JSONException {
if ("insecure".equals(BuildConfig.FLAVOR_implementation )) {
@@ -546,22 +533,22 @@ public class ProviderApiManagerTest {
}
Provider inputProvider = getConfiguredProvider();
- mockPreferenceHelper(inputProvider);
inputProvider.setGeoIpJson(new JSONObject());
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(inputProvider);
Provider expectedProvider = getConfiguredProvider();
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(EIP_ACTION_START, true);
expectedResult.putBoolean(BROADCAST_RESULT_KEY, true);
expectedResult.putParcelable(PROVIDER_KEY, expectedProvider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.DOWNLOAD_GEOIP_JSON);
- Bundle extrasBundle = mockBundle();
+ Bundle extrasBundle = new Bundle();
extrasBundle.putBoolean(EIP_ACTION_START, true);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(CORRECTLY_DOWNLOADED_GEOIP_JSON, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, inputProvider);
@@ -579,24 +566,24 @@ public class ProviderApiManagerTest {
}
Provider provider = getConfiguredProvider();
- mockPreferenceHelper(provider);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_GEOIP_SERVICE_IS_DOWN);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(false);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(true);
-
+ SharedPreferences mockSharedPref = new MockSharedPreferences();
+ mockSharedPref.edit().
+ putBoolean(USE_BRIDGES, false).
+ putBoolean(USE_SNOWFLAKE, false).commit();
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider, mockSharedPref);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_GEOIP_SERVICE_IS_DOWN);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(EIP_ACTION_START, true);
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.DOWNLOAD_GEOIP_JSON);
- Bundle extrasBundle = mockBundle();
+ Bundle extrasBundle = new Bundle();
extrasBundle.putBoolean(EIP_ACTION_START, true);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(INCORRECTLY_DOWNLOADED_GEOIP_JSON, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, provider);
@@ -612,22 +599,21 @@ public class ProviderApiManagerTest {
return;
}
- mockTorStatusObservable(null);
Provider provider = getConfiguredProvider();
- mockPreferenceHelper(provider);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_GEOIP_SERVICE_IS_DOWN_TOR_FALLBACK);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_GEOIP_SERVICE_IS_DOWN_TOR_FALLBACK);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(EIP_ACTION_START, true);
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.DOWNLOAD_GEOIP_JSON);
- Bundle extrasBundle = mockBundle();
+ Bundle extrasBundle = new Bundle();
extrasBundle.putBoolean(EIP_ACTION_START, true);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(INCORRECTLY_DOWNLOADED_GEOIP_JSON, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, provider);
@@ -647,20 +633,20 @@ public class ProviderApiManagerTest {
Provider provider = getConfiguredProvider();
provider.setLastGeoIpUpdate(System.currentTimeMillis());
- mockPreferenceHelper(provider);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(EIP_ACTION_START, true);
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.DOWNLOAD_GEOIP_JSON);
- Bundle extrasBundle = mockBundle();
+ Bundle extrasBundle = new Bundle();
extrasBundle.putBoolean(EIP_ACTION_START, true);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(INCORRECTLY_DOWNLOADED_GEOIP_JSON, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, provider);
@@ -678,20 +664,20 @@ public class ProviderApiManagerTest {
Provider provider = getConfiguredProvider();
provider.setGeoipUrl(null);
provider.setGeoIpJson(new JSONObject());
- mockPreferenceHelper(provider);
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(EIP_ACTION_START, true);
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.DOWNLOAD_GEOIP_JSON);
- Bundle extrasBundle = mockBundle();
+ Bundle extrasBundle = new Bundle();
extrasBundle.putBoolean(EIP_ACTION_START, true);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(INCORRECTLY_DOWNLOADED_GEOIP_JSON, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, provider);
@@ -703,22 +689,20 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_APIv4_happyPath() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR_API_V4);
- mockStatic(ProviderSetupObservable.class);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR_API_V4);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Bundle expectedResult = mockBundle();
-
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, true);
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_OK, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
@@ -727,41 +711,35 @@ public class ProviderApiManagerTest {
public void test_handleIntentSetupProvider_TorFallback_SecondTryHappyPath() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(false);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(true); // getUseSnowflake() defaults to true if not set
- mockStatic(ProviderSetupObservable.class);
-
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_OK));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(null);
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
- assertEquals(8118, TorStatusObservable.getProxyPort());
+ assertNotEquals(-1, TorStatusObservable.getProxyPort());
}
@Test
public void test_handleIntentSetupProvider_TorFallbackStartServiceException_SecondTryFailed() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback(new IllegalStateException("Tor service start not failed."), true));
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(null);
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
assertEquals(-1, TorStatusObservable.getProxyPort());
@@ -770,17 +748,16 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_TorFallbackTimeoutException_SecondTryFailed() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
- providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
+ providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback(true, true));
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_NOK));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(new TimeoutException("Tor took too long to start."));
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
assertEquals(-1, TorStatusObservable.getProxyPort());
@@ -790,23 +767,19 @@ public class ProviderApiManagerTest {
public void test_handleIntentSetupProvider_TorBridgesPreferenceEnabled_Success() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR_API_V4);
- mockStatic(ProviderSetupObservable.class);
-
- when(PreferenceHelper.getUseBridges()).thenReturn(true);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(true);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(true);
+ SharedPreferences sharedPreferences = new MockSharedPreferences();
+ sharedPreferences.edit().putBoolean(USE_BRIDGES, true).putBoolean(USE_SNOWFLAKE, true).commit();
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider, sharedPreferences);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR_API_V4);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_OK));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(null);
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
assertEquals(8118, TorStatusObservable.getProxyPort());
@@ -816,23 +789,19 @@ public class ProviderApiManagerTest {
public void test_handleIntentSetupProvider_TorBridgesDisabled_TorNotStarted() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR_API_V4);
-
- mockStatic(ProviderSetupObservable.class);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(false);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(true);
+ SharedPreferences sharedPreferences = new MockSharedPreferences();
+ sharedPreferences.edit().putBoolean(USE_BRIDGES, false).putBoolean(USE_SNOWFLAKE, false).commit();
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider, sharedPreferences);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR_API_V4);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(PROVIDER_OK));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(new TimeoutException("This timeout exception is never thrown"));
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
assertEquals(-1, TorStatusObservable.getProxyPort());
@@ -841,47 +810,40 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentUpdateVPNCertificate_TorBridgesPreferencesNotConfigured_TorStartedAndSuccess() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(false);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(true);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockRSAHelper();
- mockBase64();
- mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ RSAHelper rsaHelper = mockRSAHelper();
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(CORRECTLY_UPDATED_INVALID_VPN_CERTIFICATE));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(null);
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
- assertNotEquals(-1, TorStatusObservable.getProxyPort());
+ assertEquals(8118, TorStatusObservable.getProxyPort());
}
@Test
public void test_handleIntentUpdateVPNCertificate_TorBridgesPreferencesFalse_TorNotStartedAndFailure() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockBase64();
- mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
- when(PreferenceHelper.getUseBridges()).thenReturn(false);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(false);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(true);
+ SharedPreferences sharedPreferences = new MockSharedPreferences();
+ sharedPreferences.edit().putBoolean(USE_BRIDGES, false).putBoolean(USE_SNOWFLAKE, false).commit();
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider, sharedPreferences);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(ERROR_DNS_RESUOLUTION_TOR_FALLBACK);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(INCORRECTLY_UPDATED_INVALID_VPN_CERTIFICATE));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(new TimeoutException("This timeout exception is never thrown"));
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
assertEquals(-1, TorStatusObservable.getProxyPort());
@@ -891,23 +853,20 @@ public class ProviderApiManagerTest {
public void test_handleIntentUpdateVPNCertificate_TorBridgesPreferencesTrue_TorStartedAndSuccess() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockBase64();
- mockRSAHelper();
- mockProviderApiConnector(NO_ERROR_API_V4);
- when(PreferenceHelper.getUseBridges()).thenReturn(true);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(true);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(true);
+ SharedPreferences sharedPreferences = new MockSharedPreferences();
+ sharedPreferences.edit().putBoolean(USE_BRIDGES, true).putBoolean(USE_SNOWFLAKE, true).commit();
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider, sharedPreferences);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ RSAHelper rsaHelper = mockRSAHelper();
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR_API_V4);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(CORRECTLY_UPDATED_INVALID_VPN_CERTIFICATE));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(null);
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
assertNotEquals(-1, TorStatusObservable.getProxyPort());
@@ -917,27 +876,24 @@ public class ProviderApiManagerTest {
public void test_handleIntentUpdateVPNCertificate_TorBridgesPreferencesTrue_TorException_Failure() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
- mockPreferenceHelper(provider);
- mockConfigHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockBase64();
- mockProviderApiConnector(NO_ERROR_API_V4);
- when(PreferenceHelper.getUseBridges()).thenReturn(true);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(true);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(true);
+ SharedPreferences sharedPreferences = new MockSharedPreferences();
+ sharedPreferences.edit().putBoolean(USE_BRIDGES, true).putBoolean(USE_SNOWFLAKE, true).commit();
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider, sharedPreferences);
+ CertificateHelper certHelper = mockCertificateHelper(" a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR_API_V4);
- providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
+ providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback(new IllegalStateException("Nothing works always."), true));
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"initalAction\":\"ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(TOR_EXCEPTION, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(new InterruptedException("Tor thread was interrupted."));
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
assertEquals(-1, TorStatusObservable.getProxyPort());
@@ -946,25 +902,23 @@ public class ProviderApiManagerTest {
@Test
public void test_handleIntentSetupProvider_TorBridgesPreferencesEnabledTimeout_TimeoutError() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, TimeoutException, InterruptedException {
Provider provider = getConfiguredProviderAPIv4();
+ SharedPreferences sharedPreferences = new MockSharedPreferences();
+ sharedPreferences.edit().putBoolean(USE_BRIDGES, true).putBoolean(USE_SNOWFLAKE, true).commit();
+ PreferenceHelper preferenceHelper = mockPreferenceHelper(provider, sharedPreferences);
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR_API_V4);
- mockPreferenceHelper(provider);
- when(PreferenceHelper.getUseBridges()).thenReturn(true);
- when(PreferenceHelper.getUseSnowflake()).thenReturn(true);
- when(PreferenceHelper.hasSnowflakePrefs()).thenReturn(true);
-
- providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback());
+ providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback(true, true));
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errorId\":\"ERROR_TOR_TIMEOUT\",\"initalAction\":\"setUpProvider\",\"errors\":\"Starting bridges failed. Do you want to retry or continue with an unobfuscated secure connection to configure Bitmask?\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.putExtra(PROVIDER_KEY, provider);
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(TOR_TIMEOUT, expectedResult));
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
- mockTorStatusObservable(new TimeoutException("Tor took too long to start."));
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
assertEquals(-1, TorStatusObservable.getProxyPort());
@@ -974,22 +928,21 @@ public class ProviderApiManagerTest {
public void test_handleIntentSetupProvider_noNetwork_NetworkError() throws IOException, CertificateEncodingException, NoSuchAlgorithmException, JSONException {
Provider provider = getConfiguredProvider();
- mockConfigHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
- mockProviderApiConnector(NO_ERROR);
+ CertificateHelper certHelper = mockCertificateHelper("a5244308a1374709a9afce95e3ae47c1b44bc2398c0a70ccbf8b3a8a97f29494");
+ ProviderApiConnector mockedApiConnector = mockProviderApiConnector(NO_ERROR);
providerApiManager = new ProviderApiManager(mockResources, mockClientGenerator(), new TestProviderApiServiceCallback(null, false));
- Bundle expectedResult = mockBundle();
+ Bundle expectedResult = new Bundle();
expectedResult.putBoolean(BROADCAST_RESULT_KEY, false);
expectedResult.putString(ERRORS, "{\"errors\":\"Bitmask has no internet connection. Please check your WiFi and cellular data settings.\"}");
expectedResult.putParcelable(PROVIDER_KEY, provider);
- Intent providerApiCommand = mockIntent();
+ Intent providerApiCommand = new Intent();
providerApiCommand.setAction(ProviderAPI.SET_UP_PROVIDER);
providerApiCommand.putExtra(ProviderAPI.RECEIVER_KEY, mockResultReceiver(MISSING_NETWORK_CONNECTION, expectedResult));
providerApiCommand.putExtra(PROVIDER_KEY, provider);
- providerApiCommand.putExtra(PARAMETERS, mockBundle());
+ providerApiCommand.putExtra(PARAMETERS, new Bundle());
providerApiManager.handleIntent(providerApiCommand);
}
-
}
diff --git a/app/src/test/java/se/leap/bitmaskclient/eip/VpnCertificateValidatorTest.java b/app/src/test/java/se/leap/bitmaskclient/eip/VpnCertificateValidatorTest.java
index 1cb47f43..a951f144 100644
--- a/app/src/test/java/se/leap/bitmaskclient/eip/VpnCertificateValidatorTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/eip/VpnCertificateValidatorTest.java
@@ -2,25 +2,20 @@ package se.leap.bitmaskclient.eip;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateEncodingException;
import java.util.Calendar;
-import se.leap.bitmaskclient.base.utils.ConfigHelper;
+import se.leap.bitmaskclient.base.utils.CertificateHelper;
import se.leap.bitmaskclient.testutils.TestCalendarProvider;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockConfigHelper;
+import static se.leap.bitmaskclient.testutils.MockHelper.mockCertificateHelper;
import static se.leap.bitmaskclient.testutils.TestSetupHelper.getInputAsString;
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({ConfigHelper.class})
public class VpnCertificateValidatorTest {
@Before
@@ -31,7 +26,7 @@ public class VpnCertificateValidatorTest {
public void test_isValid() throws NoSuchAlgorithmException, CertificateEncodingException, IOException {
String cert = getInputAsString(getClass().getClassLoader().getResourceAsStream("riseup.net.pem"));
Calendar c = new Calendar.Builder().setDate(2018, 1, 1).setCalendarType("gregorian").build();
- mockConfigHelper("falseFingerPrint");
+ CertificateHelper helper = mockCertificateHelper("falseFingerPrint");
VpnCertificateValidator validator = new VpnCertificateValidator(cert);
validator.setCalendarProvider(new TestCalendarProvider(c.getTimeInMillis()));
assertTrue( validator.isValid());
@@ -41,7 +36,7 @@ public class VpnCertificateValidatorTest {
public void test_isValid_lessThan1day_returnFalse() throws NoSuchAlgorithmException, CertificateEncodingException, IOException {
String cert = getInputAsString(getClass().getClassLoader().getResourceAsStream("riseup.net.pem"));
Calendar c = new Calendar.Builder().setDate(2024, 3, 28).setCalendarType("gregorian").build();
- mockConfigHelper("falseFingerPrint");
+ CertificateHelper helper = mockCertificateHelper("falseFingerPrint");
VpnCertificateValidator validator = new VpnCertificateValidator(cert);
validator.setCalendarProvider(new TestCalendarProvider(c.getTimeInMillis()));
assertFalse( validator.isValid());
@@ -51,7 +46,7 @@ public class VpnCertificateValidatorTest {
public void test_isValid_multipleCerts_failIfOneExpires() throws NoSuchAlgorithmException, CertificateEncodingException, IOException {
String cert = getInputAsString(getClass().getClassLoader().getResourceAsStream("float.hexacab.org.pem"));
Calendar c = new Calendar.Builder().setDate(2024, 3, 28).setCalendarType("gregorian").build();
- mockConfigHelper("falseFingerPrint");
+ CertificateHelper helper = mockCertificateHelper("falseFingerPrint");
VpnCertificateValidator validator = new VpnCertificateValidator(cert);
validator.setCalendarProvider(new TestCalendarProvider(c.getTimeInMillis()));
assertFalse(validator.isValid());
@@ -61,7 +56,7 @@ public class VpnCertificateValidatorTest {
public void test_isValid_multipleCerts_allValid() throws NoSuchAlgorithmException, CertificateEncodingException, IOException {
String cert = getInputAsString(getClass().getClassLoader().getResourceAsStream("float.hexacab.org.pem"));
Calendar c = new Calendar.Builder().setDate(2024, 3, 27).setCalendarType("gregorian").build();
- mockConfigHelper("falseFingerPrint");
+ CertificateHelper helper = mockCertificateHelper("falseFingerPrint");
VpnCertificateValidator validator = new VpnCertificateValidator(cert);
validator.setCalendarProvider(new TestCalendarProvider(c.getTimeInMillis()));
assertTrue(validator.isValid());
@@ -71,7 +66,7 @@ public class VpnCertificateValidatorTest {
public void test_shouldBeUpdated_lessThan8days_returnTrue() throws NoSuchAlgorithmException, CertificateEncodingException, IOException {
String cert = getInputAsString(getClass().getClassLoader().getResourceAsStream("float.hexacab.org.pem"));
Calendar c = new Calendar.Builder().setDate(2024, 3, 21).setCalendarType("gregorian").build();
- mockConfigHelper("falseFingerPrint");
+ CertificateHelper helper = mockCertificateHelper("falseFingerPrint");
VpnCertificateValidator validator = new VpnCertificateValidator(cert);
validator.setCalendarProvider(new TestCalendarProvider(c.getTimeInMillis()));
assertTrue(validator.shouldBeUpdated());
@@ -81,7 +76,7 @@ public class VpnCertificateValidatorTest {
public void test_shouldBeUpdated_moreThan8days_returnFalse() throws NoSuchAlgorithmException, CertificateEncodingException, IOException {
String cert = getInputAsString(getClass().getClassLoader().getResourceAsStream("float.hexacab.org.pem"));
Calendar c = new Calendar.Builder().setDate(2024, 3, 20).setCalendarType("gregorian").build();
- mockConfigHelper("falseFingerPrint");
+ CertificateHelper helper = mockCertificateHelper("falseFingerPrint");
VpnCertificateValidator validator = new VpnCertificateValidator(cert);
validator.setCalendarProvider(new TestCalendarProvider(c.getTimeInMillis()));
assertFalse(validator.shouldBeUpdated());
diff --git a/app/src/test/java/se/leap/bitmaskclient/eip/VpnConfigGeneratorTest.java b/app/src/test/java/se/leap/bitmaskclient/eip/VpnConfigGeneratorTest.java
index 3f011a65..4b9e5d65 100644
--- a/app/src/test/java/se/leap/bitmaskclient/eip/VpnConfigGeneratorTest.java
+++ b/app/src/test/java/se/leap/bitmaskclient/eip/VpnConfigGeneratorTest.java
@@ -4,32 +4,18 @@ import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
-import static org.powermock.api.mockito.PowerMockito.mockStatic;
-import static org.powermock.api.mockito.PowerMockito.when;
+import static org.mockito.Mockito.when;
import static de.blinkt.openvpn.core.connection.Connection.TransportType.OBFS4;
import static de.blinkt.openvpn.core.connection.Connection.TransportType.OBFS4_HOP;
import static de.blinkt.openvpn.core.connection.Connection.TransportType.OPENVPN;
import static se.leap.bitmaskclient.base.models.Constants.OPENVPN_CONFIGURATION;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockRSAHelper;
-import static se.leap.bitmaskclient.testutils.MockHelper.mockTextUtils;
import android.content.Context;
import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-import android.text.TextUtils;
-import android.util.Log;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
import java.io.File;
import java.util.HashMap;
@@ -40,19 +26,21 @@ import de.blinkt.openvpn.core.connection.Connection;
import de.blinkt.openvpn.core.connection.Obfs4Connection;
import de.blinkt.openvpn.core.connection.Obfs4HopConnection;
import se.leap.bitmaskclient.base.models.ProviderObservable;
-import se.leap.bitmaskclient.base.utils.ConfigHelper;
+import se.leap.bitmaskclient.base.utils.BuildConfigHelper;
+import se.leap.bitmaskclient.base.utils.PreferenceHelper;
+import se.leap.bitmaskclient.base.utils.RSAHelper;
import se.leap.bitmaskclient.testutils.MockHelper;
+import se.leap.bitmaskclient.testutils.MockSharedPreferences;
import se.leap.bitmaskclient.testutils.TestSetupHelper;
/**
* Created by cyberta on 03.10.17.
*/
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({Log.class, TextUtils.class, PreferenceManager.class, ProviderObservable.class, ConfigHelper.RSAHelper.class, ConfigHelper.ObfsVpnHelper.class})
public class VpnConfigGeneratorTest {
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
Context context;
+ PreferenceHelper preferenceHelper;
+ private SharedPreferences sharedPreferences;
private VpnConfigGenerator vpnConfigGenerator;
private JSONObject generalConfig;
@@ -139,7 +127,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"remote-cert-tls server\n" +
"data-ciphers AES-128-CBC\n" +
"cipher AES-128-CBC\n" +
@@ -235,7 +223,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"remote-cert-tls server\n" +
"data-ciphers AES-128-CBC\n" +
"cipher AES-128-CBC\n" +
@@ -330,7 +318,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"route 37.218.247.60 255.255.255.255 net_gateway\n"+
"remote-cert-tls server\n" +
"data-ciphers AES-128-CBC\n" +
@@ -426,7 +414,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"route 37.218.247.60 255.255.255.255 net_gateway\n"+
"remote-cert-tls server\n" +
"data-ciphers AES-128-CBC\n" +
@@ -523,7 +511,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"remote-cert-tls server\n" +
"data-ciphers AES-128-CBC\n" +
"cipher AES-128-CBC\n" +
@@ -619,7 +607,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"remote-cert-tls server\n" +
"data-ciphers AES-128-CBC\n" +
"cipher AES-128-CBC\n" +
@@ -715,7 +703,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"remote-cert-tls server\n" +
"data-ciphers AES-256-GCM:AES-128-GCM:AES-128-CBC\n" +
"cipher AES-128-CBC\n" +
@@ -813,7 +801,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"comp-lzo\n" +
"nobind\n"+
"remote-cert-tls server\n" +
@@ -915,7 +903,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"comp-lzo\n" +
"nobind\n"+
"remote-cert-tls server\n" +
@@ -1025,7 +1013,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"comp-lzo\n" +
"nobind\n"+
"remote-cert-tls server\n" +
@@ -1128,7 +1116,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"nobind\n"+
"remote-cert-tls server\n" +
"data-ciphers AES-256-GCM:AES-128-CBC\n" +
@@ -1228,7 +1216,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"route 192.81.208.164 255.255.255.255 net_gateway\n"+
"tun-mtu 48000\n"+
"nobind\n"+
@@ -1332,7 +1320,7 @@ public class VpnConfigGeneratorTest {
"-----END CERTIFICATE-----\n" +
"</cert>\n" +
"management-external-key nopadding pkcs1 pss digest\n" +
- "# crl-verify file missing in config profile\n" +
+ //"# crl-verify file missing in config profile\n" +
"route 192.81.208.164 255.255.255.255 net_gateway\n"+
"route 192.81.208.165 255.255.255.255 net_gateway\n"+
"route 192.81.208.166 255.255.255.255 net_gateway\n"+
@@ -1364,17 +1352,13 @@ public class VpnConfigGeneratorTest {
public void setUp() throws Exception {
generalConfig = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("general_configuration.json")));
secrets = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("secrets.json")));
- mockStatic(Log.class);
context = MockHelper.mockContext();
- mockTextUtils();
- mockStatic(PreferenceManager.class);
- MockHelper.mockProviderObservable(TestSetupHelper.getConfiguredProvider());
- MockHelper.mockRSAHelper();
- SharedPreferences preferences = mock(SharedPreferences.class, RETURNS_DEEP_STUBS);
- when(PreferenceManager.getDefaultSharedPreferences(any(Context.class))).thenReturn(preferences);
- when(preferences.getBoolean("usesystemproxy", true)).thenReturn(true);
+
+ ProviderObservable providerObservable = MockHelper.mockProviderObservable(TestSetupHelper.getConfiguredProvider());
+ RSAHelper rsaHelper = MockHelper.mockRSAHelper();
+ sharedPreferences = new MockSharedPreferences();
+ preferenceHelper = new PreferenceHelper(new MockSharedPreferences());
when(context.getCacheDir()).thenReturn(new File("/data/data/se.leap.bitmask"));
- mockStatic(ConfigHelper.ObfsVpnHelper.class);
}
@Test
@@ -1424,7 +1408,7 @@ public class VpnConfigGeneratorTest {
@Test
public void testGenerateVpnProfile_v3_obfs4() throws Exception {
- when(ConfigHelper.ObfsVpnHelper.useObfsVpn()).thenReturn(false);
+ BuildConfigHelper buildConfigHelper = MockHelper.mockBuildConfigHelper(false);
gateway = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("ptdemo.bitmask.eip-service.json"))).getJSONArray("gateways").getJSONObject(0);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
configuration.apiVersion = 3;
@@ -1438,7 +1422,7 @@ public class VpnConfigGeneratorTest {
@Test
public void testGenerateVpnProfile_v3_obfs4_obfsvpn() throws Exception {
- when(ConfigHelper.ObfsVpnHelper.useObfsVpn()).thenReturn(true);
+ BuildConfigHelper buildConfigHelper = MockHelper.mockBuildConfigHelper(true);
gateway = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("ptdemo.bitmask.eip-service.json"))).getJSONArray("gateways").getJSONObject(0);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
configuration.apiVersion = 3;
@@ -1744,7 +1728,7 @@ public class VpnConfigGeneratorTest {
@Test
public void testGetConfigFile_testHoppingPtPortHopping_decoupled() throws Exception {
- when(ConfigHelper.ObfsVpnHelper.useObfsVpn()).thenReturn(true);
+ BuildConfigHelper buildConfigHelper = MockHelper.mockBuildConfigHelper(true);
gateway = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt_portHopping.eip-service.json"))).getJSONArray("gateways").getJSONObject(2);
generalConfig = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt_portHopping.eip-service.json"))).getJSONObject(OPENVPN_CONFIGURATION);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -1758,7 +1742,7 @@ public class VpnConfigGeneratorTest {
@Test
public void testGetConfigFile_testHoppingPtPortAndIPHopping_decoupled() throws Exception {
- when(ConfigHelper.ObfsVpnHelper.useObfsVpn()).thenReturn(true);
+ BuildConfigHelper buildConfigHelper = MockHelper.mockBuildConfigHelper(true);
gateway = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt_portHopping.eip-service.json"))).getJSONArray("gateways").getJSONObject(2);
generalConfig = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt_portHopping.eip-service.json"))).getJSONObject(OPENVPN_CONFIGURATION);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -1771,7 +1755,7 @@ public class VpnConfigGeneratorTest {
}
@Test
public void testGenerateVpnProfile_obfs4_decoupled() throws Exception {
- when(ConfigHelper.ObfsVpnHelper.useObfsVpn()).thenReturn(true);
+ BuildConfigHelper buildConfigHelper = MockHelper.mockBuildConfigHelper(true);
gateway = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt.eip-service.json"))).getJSONArray("gateways").getJSONObject(1);
generalConfig = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt.eip-service.json"))).getJSONObject(OPENVPN_CONFIGURATION);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -1786,7 +1770,7 @@ public class VpnConfigGeneratorTest {
@Test
public void testGenerateVpnProfile_obfs4hop_decoupled() throws Exception {
- when(ConfigHelper.ObfsVpnHelper.useObfsVpn()).thenReturn(true);
+ BuildConfigHelper buildConfigHelper = MockHelper.mockBuildConfigHelper(true);
gateway = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt.eip-service.json"))).getJSONArray("gateways").getJSONObject(2);
generalConfig = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt.eip-service.json"))).getJSONObject(OPENVPN_CONFIGURATION);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -1802,7 +1786,7 @@ public class VpnConfigGeneratorTest {
@Test
public void testGenerateVpnProfile_noExperimental_skipObfs4Hop() throws Exception {
- when(ConfigHelper.ObfsVpnHelper.useObfsVpn()).thenReturn(true);
+ BuildConfigHelper buildConfigHelper = MockHelper.mockBuildConfigHelper(true);
gateway = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt.eip-service.json"))).getJSONArray("gateways").getJSONObject(2);
generalConfig = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt.eip-service.json"))).getJSONObject(OPENVPN_CONFIGURATION);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();
@@ -1820,7 +1804,7 @@ public class VpnConfigGeneratorTest {
@Test
public void testGenerateVpnProfile_obfs4hop_onlyPortHopping_decoupled() throws Exception {
- when(ConfigHelper.ObfsVpnHelper.useObfsVpn()).thenReturn(true);
+ BuildConfigHelper buildConfigHelper = MockHelper.mockBuildConfigHelper(true);
gateway = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt_portHopping.eip-service.json"))).getJSONArray("gateways").getJSONObject(2);
generalConfig = new JSONObject(TestSetupHelper.getInputAsString(getClass().getClassLoader().getResourceAsStream("decoupled_pt_portHopping.eip-service.json"))).getJSONObject(OPENVPN_CONFIGURATION);
VpnConfigGenerator.Configuration configuration = new VpnConfigGenerator.Configuration();