diff options
| -rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java | 13 | ||||
| -rw-r--r-- | app/src/test/java/se/leap/bitmaskclient/base/utils/ConfigHelperTest.java | 48 | 
2 files changed, 60 insertions, 1 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java index 4248072a..005a8b82 100644 --- a/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java +++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/ConfigHelper.java @@ -44,10 +44,12 @@ import java.security.interfaces.RSAPrivateKey;  import java.security.spec.InvalidKeySpecException;  import java.security.spec.PKCS8EncodedKeySpec;  import java.util.Calendar; +import java.util.regex.Matcher; +import java.util.regex.Pattern;  import se.leap.bitmaskclient.BuildConfig; -import se.leap.bitmaskclient.providersetup.ProviderAPI;  import se.leap.bitmaskclient.R; +import se.leap.bitmaskclient.providersetup.ProviderAPI;  import static se.leap.bitmaskclient.base.models.Constants.DEFAULT_BITMASK; @@ -62,6 +64,7 @@ public class ConfigHelper {      final public static String NG_1024 =              "eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3";      final public static BigInteger G = new BigInteger("2"); +    final public static Pattern IPv4_PATTERN = Pattern.compile("^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$");      public static boolean checkErroneousDownload(String downloadedString) {          try { @@ -227,4 +230,12 @@ public class ConfigHelper {          }      } +    public static boolean isIPv4(String ipv4) { +        if (ipv4 == null) { +            return false; +        } +        Matcher matcher = IPv4_PATTERN.matcher(ipv4); +        return matcher.matches(); +    } +  } diff --git a/app/src/test/java/se/leap/bitmaskclient/base/utils/ConfigHelperTest.java b/app/src/test/java/se/leap/bitmaskclient/base/utils/ConfigHelperTest.java new file mode 100644 index 00000000..75552226 --- /dev/null +++ b/app/src/test/java/se/leap/bitmaskclient/base/utils/ConfigHelperTest.java @@ -0,0 +1,48 @@ +package se.leap.bitmaskclient.base.utils; + +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.modules.junit4.PowerMockRunnerDelegate; + +import static org.junit.Assert.assertEquals; + +@RunWith(PowerMockRunner.class) +@PowerMockRunnerDelegate(DataProviderRunner.class) +public class ConfigHelperTest { + +    @DataProvider +    public static Object[][] dataProviderIPs() { +        // @formatter:off +        return new Object[][] { +                { "0.0.0.0", true }, +                { "1.1.1.1", true }, +                { "8.8.8.8", true }, +                { "127.0.0.1", true }, +                { "255.255.255.255", true }, +                { "200.50.20.10", true }, +                { "97.72.15.12", true }, +                {"02.0.0.0", false}, +                {"10.000.1.1", false}, +                {"256.256.256.256", false}, +                {"127..0.1", false}, +                {"127.0..1", false}, +                {"127.0.0.", false}, +                {"127.0.0", false}, +                {"255.255.255.255.255", false}, +                {"", false}, +                {null, false}, +        }; +    } + + +    @Test +    @UseDataProvider("dataProviderIPs") +    public void testisIPv4_validIPs_returnsTrue(String ip, boolean isValidExpected) { +        assertEquals(isValidExpected, ConfigHelper.isIPv4(ip)); +    } +}
\ No newline at end of file  | 
