From 7cbf75518603ba4f5bc47cc5bf5cbd9fac289a41 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Thu, 14 Sep 2017 17:30:47 +0200 Subject: refactor failing certification validation test --- .../bitmaskclient/test/TestCalendarProvider.java | 26 +++++++++++++ .../test/TestVpnCertificateValidator.java | 44 +++++++++++++++++++--- 2 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 app/src/androidTest/java/se/leap/bitmaskclient/test/TestCalendarProvider.java (limited to 'app/src/androidTest') diff --git a/app/src/androidTest/java/se/leap/bitmaskclient/test/TestCalendarProvider.java b/app/src/androidTest/java/se/leap/bitmaskclient/test/TestCalendarProvider.java new file mode 100644 index 00000000..82ea8b59 --- /dev/null +++ b/app/src/androidTest/java/se/leap/bitmaskclient/test/TestCalendarProvider.java @@ -0,0 +1,26 @@ +package se.leap.bitmaskclient.test; + +import java.util.Calendar; + +import se.leap.bitmaskclient.eip.CalendarProviderInterface; + +/** + * Created by cyberta on 13.09.17. + */ + +class TestCalendarProvider implements CalendarProviderInterface { + + private long currentTimeInMillis = 0; + + public TestCalendarProvider(long currentTimeInMillis) { + this.currentTimeInMillis = currentTimeInMillis; + } + + @Override + public Calendar getCalendar() { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(currentTimeInMillis); + return calendar; + } + +} diff --git a/app/src/androidTest/java/se/leap/bitmaskclient/test/TestVpnCertificateValidator.java b/app/src/androidTest/java/se/leap/bitmaskclient/test/TestVpnCertificateValidator.java index 672607be..2704bcad 100644 --- a/app/src/androidTest/java/se/leap/bitmaskclient/test/TestVpnCertificateValidator.java +++ b/app/src/androidTest/java/se/leap/bitmaskclient/test/TestVpnCertificateValidator.java @@ -30,10 +30,11 @@ import se.leap.bitmaskclient.eip.*; /** * @author parmegv + * //FIXME: The class VpnCertificateValidator should be tested with unit tests! */ -public class testVpnCertificateValidator extends InstrumentationTestCase { +public class TestVpnCertificateValidator extends InstrumentationTestCase { - String certificate_valid_from_jan2015_to_nov2022 = ""; + String certificate_valid_from_nov2012_to_nov2022 = ""; Context context; FromAssets assets; @@ -43,16 +44,47 @@ public class testVpnCertificateValidator extends InstrumentationTestCase { context = getInstrumentation().getContext(); assets = new FromAssets(context); JSONObject secrets = new JSONObject(assets.toString(TestConstants.SECRETS_FILE)); - certificate_valid_from_jan2015_to_nov2022 = secrets.getString(Provider.CA_CERT); + certificate_valid_from_nov2012_to_nov2022 = secrets.getString(Provider.CA_CERT); super.setUp(); } + + //TODO: This test proves that the validation method is weird. Valid dates range between Nov. 2oo6 and Nov. 2017 instead of Nov. 2012 and Nov.2022 public void testIsValid() { - VpnCertificateValidator validator = new VpnCertificateValidator(certificate_valid_from_jan2015_to_nov2022); - setTime(2015, 1, 6); + VpnCertificateValidator validator = new VpnCertificateValidator(certificate_valid_from_nov2012_to_nov2022); + Calendar calendar = Calendar.getInstance(); + + calendar.set(Calendar.YEAR, 2006); + calendar.set(Calendar.MONTH, Calendar.NOVEMBER); + calendar.set(Calendar.DAY_OF_MONTH, 6); calendar.set(Calendar.YEAR, 2006); + validator.setCalendarProvider(new TestCalendarProvider(calendar.getTimeInMillis())); + assertFalse(validator.isValid()); + + calendar.set(Calendar.YEAR, 2010); + calendar.set(Calendar.MONTH, Calendar.NOVEMBER); + calendar.set(Calendar.DAY_OF_MONTH, 6); + validator.setCalendarProvider(new TestCalendarProvider(calendar.getTimeInMillis())); + assertTrue(validator.isValid()); + + calendar.set(Calendar.YEAR, 2011); + calendar.set(Calendar.MONTH, Calendar.NOVEMBER); + calendar.set(Calendar.DAY_OF_MONTH, 6); + validator.setCalendarProvider(new TestCalendarProvider(calendar.getTimeInMillis())); assertTrue(validator.isValid()); - setTime(2020, 1, 6); + + calendar.set(Calendar.YEAR, 2017); + calendar.set(Calendar.MONTH, Calendar.NOVEMBER); + calendar.set(Calendar.DAY_OF_MONTH, 5); + validator.setCalendarProvider(new TestCalendarProvider(calendar.getTimeInMillis())); + assertTrue(validator.isValid()); + + calendar.set(Calendar.YEAR, 2017); + calendar.set(Calendar.MONTH, Calendar.NOVEMBER); + calendar.set(Calendar.DAY_OF_MONTH, 6); + validator.setCalendarProvider(new TestCalendarProvider(calendar.getTimeInMillis())); assertFalse(validator.isValid()); + + } private void setTime(int year, int month, int day) { -- cgit v1.2.3