summaryrefslogtreecommitdiff
path: root/app/src/test/java/se/leap/bitmaskclient/testutils
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2023-08-02 22:45:26 +0200
committercyBerta <cyberta@riseup.net>2023-08-02 22:45:26 +0200
commit64449816223cb9abb6e75310c03dcc9353a42ee4 (patch)
tree66cb86d382cc67267441a10320f7e13cd125e66b /app/src/test/java/se/leap/bitmaskclient/testutils
parent1ac4ec903f0d10b65810b720f76f08df969c3bec (diff)
use single instance of shared prefernces across the app, this reduces the laggyness of the UI noticably
Diffstat (limited to 'app/src/test/java/se/leap/bitmaskclient/testutils')
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/testutils/MockHelper.java37
1 files changed, 33 insertions, 4 deletions
diff --git a/app/src/test/java/se/leap/bitmaskclient/testutils/MockHelper.java b/app/src/test/java/se/leap/bitmaskclient/testutils/MockHelper.java
index 4ef8b9cc..91823433 100644
--- a/app/src/test/java/se/leap/bitmaskclient/testutils/MockHelper.java
+++ b/app/src/test/java/se/leap/bitmaskclient/testutils/MockHelper.java
@@ -469,7 +469,7 @@ public class MockHelper {
public static void mockPreferenceHelper(final Provider providerFromPrefs) {
// FIXME use MockSharedPreferences instead of provider
mockStatic(PreferenceHelper.class);
- when(getFromPersistedProvider(anyString(), anyString(), any(SharedPreferences.class))).thenAnswer(new Answer<String>() {
+ when(getFromPersistedProvider(anyString(), anyString())).thenAnswer(new Answer<String>() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
String key = (String) invocation.getArguments()[0];
@@ -495,7 +495,7 @@ public class MockHelper {
return null;
}
});
- when(getLongFromPersistedProvider(anyString(), anyString(), any(SharedPreferences.class))).thenAnswer(new Answer<Long>() {
+ when(getLongFromPersistedProvider(anyString(), anyString())).thenAnswer(new Answer<Long>() {
@Override
public Long answer(InvocationOnMock invocation) throws Throwable {
String key = (String) invocation.getArguments()[0];
@@ -508,7 +508,7 @@ public class MockHelper {
return 0L;
}
});
- when(getStringSetFromPersistedProvider(anyString(), anyString(), any(SharedPreferences.class))).thenAnswer(new Answer<Set<String>>() {
+ when(getStringSetFromPersistedProvider(anyString(), anyString())).thenAnswer(new Answer<Set<String>>() {
@Override
public Set<String> answer(InvocationOnMock invocation) throws Throwable {
String key = (String) invocation.getArguments()[0];
@@ -519,14 +519,43 @@ public class MockHelper {
return null;
}
});
+ when(PreferenceHelper.hasKey(anyString())).then(new Answer<Boolean>() {
+ @Override
+ public Boolean answer(InvocationOnMock invocation) throws Throwable {
+ String key = (String) invocation.getArguments()[0];
+ if (key!= null && key.contains(providerFromPrefs.getDomain())) {
+ key = key.substring(0, key.indexOf(providerFromPrefs.getDomain()) - 1 /* -1 -> "." at the end */);
+ }
+ switch (key) {
+ case PROVIDER_PRIVATE_KEY:
+ return providerFromPrefs.getPrivateKey() != null;
+ case PROVIDER_VPN_CERTIFICATE:
+ return providerFromPrefs.getVpnCertificate() != null;
+ case Provider.KEY:
+ return providerFromPrefs.getDefinition().keys().hasNext();
+ case Provider.CA_CERT_FINGERPRINT:
+ return providerFromPrefs.getCaCertFingerprint().length() > 1;
+ case Provider.CA_CERT:
+ return providerFromPrefs.getCaCert() != null;
+ case Provider.GEOIP_URL:
+ return !providerFromPrefs.getGeoipUrl().isDefault();
+ case Provider.MOTD_URL:
+ return !providerFromPrefs.getMotdUrl().isDefault();
+ case PROVIDER_MOTD:
+ return providerFromPrefs.getMotdJson().keys().hasNext();
+ }
+ return false;
+ }
+ });
}
public static void mockPreferenceHelper(MockSharedPreferences preferences) {
mockStatic(PreferenceHelper.class);
- when(getEipDefinitionFromPreferences(any(SharedPreferences.class))).thenAnswer(new Answer<JSONObject>() {
+ when(getEipDefinitionFromPreferences()).thenAnswer(new Answer<JSONObject>() {
@Override
public JSONObject answer(InvocationOnMock invocation) throws Throwable {
+
return getEipDefinitionFromPreferences(preferences);
}
});