summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/androidTest/java/se/leap/bitmaskclient/test/testEIP.java31
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/EIP.java4
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/VpnCertificateValidator.java8
3 files changed, 38 insertions, 5 deletions
diff --git a/app/src/androidTest/java/se/leap/bitmaskclient/test/testEIP.java b/app/src/androidTest/java/se/leap/bitmaskclient/test/testEIP.java
index 4e1819d0..be774ecb 100644
--- a/app/src/androidTest/java/se/leap/bitmaskclient/test/testEIP.java
+++ b/app/src/androidTest/java/se/leap/bitmaskclient/test/testEIP.java
@@ -2,20 +2,25 @@ package se.leap.bitmaskclient.test;
import android.content.Context;
import android.content.Intent;
-import android.test.ActivityUnitTestCase;
+import android.content.SharedPreferences;
import android.test.ServiceTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
import se.leap.bitmaskclient.Dashboard;
+import se.leap.bitmaskclient.eip.Constants;
import se.leap.bitmaskclient.eip.EIP;
public class testEIP extends ServiceTestCase<EIP> {
private Context context;
private Intent intent;
- private EIP activity;
+ private SharedPreferences preferences;
public testEIP(Class<EIP> activityClass) {
super(activityClass);
+ context = getSystemContext();
+ intent = new Intent(context, EIP.class);
+ preferences = context.getSharedPreferences(Dashboard.SHARED_PREFERENCES, Context.MODE_PRIVATE);
}
@Override
@@ -28,5 +33,27 @@ public class testEIP extends ServiceTestCase<EIP> {
super.tearDown();
}
+ @MediumTest
+ private void testCheckCertValidity() {
+ testEmptyCertificate();
+ testExpiredCertificate();
+ // Wait for the service to start
+ // Check result is OK.
+ }
+
+ private void testEmptyCertificate() {
+ preferences.edit().putString(Constants.CERTIFICATE, "");
+ startService(Constants.ACTION_CHECK_CERT_VALIDITY);
+ }
+ private void testExpiredCertificate() {
+ String expired_certificate = "expired certificate";
+ preferences.edit().putString(Constants.CERTIFICATE, expired_certificate);
+ startService(Constants.ACTION_CHECK_CERT_VALIDITY);
+ }
+
+ private void startService(String action) {
+ intent.setAction(action);
+ startService(intent);
+ }
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java b/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java
index 533b0281..a86b9c6a 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java
@@ -354,8 +354,8 @@ public final class EIP extends IntentService {
}
private void checkCertValidity() {
- VpnCertificateValidator validator = new VpnCertificateValidator();
- int resultCode = validator.isValid(preferences.getString(CERTIFICATE, "")) ?
+ VpnCertificateValidator validator = new VpnCertificateValidator(preferences.getString(CERTIFICATE, ""));
+ int resultCode = validator.isValid() ?
Activity.RESULT_OK :
Activity.RESULT_CANCELED;
tellToReceiver(ACTION_CHECK_CERT_VALIDITY, resultCode);
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/VpnCertificateValidator.java b/app/src/main/java/se/leap/bitmaskclient/eip/VpnCertificateValidator.java
index 6487f6c1..0bbe9db4 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/VpnCertificateValidator.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/VpnCertificateValidator.java
@@ -28,7 +28,13 @@ import se.leap.bitmaskclient.ConfigHelper;
public class VpnCertificateValidator {
public final static String TAG = VpnCertificateValidator.class.getSimpleName();
- public boolean isValid(String certificate) {
+ private String certificate;
+
+ public VpnCertificateValidator(String certificate) {
+ this.certificate = certificate;
+ }
+
+ public boolean isValid() {
if(!certificate.isEmpty()) {
X509Certificate certificate_x509 = ConfigHelper.parseX509CertificateFromString(certificate);
return isValid(certificate_x509);