From e279f9d2760f5902c9a9fc68068e579805a12f2a Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 15 Mar 2018 00:31:30 +0100 Subject: Test and fix auth-retry config feature (closes #853) --- .../main/java/de/blinkt/openvpn/VpnProfile.java | 6 +- .../blinkt/openvpn/core/TestConfigGenerator.java | 74 ++++++++++++++++++++++ 2 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 main/src/test/java/de/blinkt/openvpn/core/TestConfigGenerator.java (limited to 'main/src') diff --git a/main/src/main/java/de/blinkt/openvpn/VpnProfile.java b/main/src/main/java/de/blinkt/openvpn/VpnProfile.java index 8cce8597..5056a111 100644 --- a/main/src/main/java/de/blinkt/openvpn/VpnProfile.java +++ b/main/src/main/java/de/blinkt/openvpn/VpnProfile.java @@ -307,7 +307,7 @@ public class VpnProfile implements Serializable, Cloneable { String versionString = getPlatformVersionEnvString(); cfg += String.format("setenv IV_PLAT_VER %s\n", openVpnEscape(versionString)); } else { - cfg += "# Config for OpeNVPN 3 C++\n"; + cfg += "# Config for OpenVPN 3 C++\n"; } @@ -429,8 +429,8 @@ public class VpnProfile implements Serializable, Cloneable { } if (isUserPWAuth()) { - if (mAuthenticationType == AUTH_RETRY_NOINTERACT) - cfg += "auth-retry nointeract"; + if (mAuthRetry == AUTH_RETRY_NOINTERACT) + cfg += "auth-retry nointeract\n"; } if (!TextUtils.isEmpty(mCrlFilename)) diff --git a/main/src/test/java/de/blinkt/openvpn/core/TestConfigGenerator.java b/main/src/test/java/de/blinkt/openvpn/core/TestConfigGenerator.java new file mode 100644 index 00000000..58e5c268 --- /dev/null +++ b/main/src/test/java/de/blinkt/openvpn/core/TestConfigGenerator.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2012-2018 Arne Schwabe + * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt + */ + +package de.blinkt.openvpn.core; + +import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.test.mock.MockContext; + +import junit.framework.Assert; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +import java.io.File; + +import static de.blinkt.openvpn.VpnProfile.TYPE_USERPASS; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import de.blinkt.openvpn.VpnProfile; + +import static de.blinkt.openvpn.VpnProfile.AUTH_RETRY_NOINTERACT; + +/** + * Created by arne on 14.03.18. + */ + +@Config(manifest= Config.NONE) +@RunWith(RobolectricTestRunner.class) +public class TestConfigGenerator { + @Test + public void testAuthRetryGen() throws PackageManager.NameNotFoundException { + /*Context mc = mock(Context.class); + PackageManager mpm = mock(PackageManager.class); + + PackageInfo mpi = new PackageInfo(); + mpi.versionCode = 177; + mpi.versionName = "foo"; + + when(mc.getCacheDir()).thenReturn(new File("/j/unit/test/")); + when(mc.getPackageName()).thenReturn("de.blinkt.openvpn"); + when(mc.getPackageManager()).thenReturn(mpm); + when(mpm.getPackageInfo(eq("de.blinkt.openvpn"),eq(0))).thenReturn(mpi);*/ + + + + VpnProfile vp = new VpnProfile ("test") { + @Override + public String getVersionEnvString(Context c) { + return "no ver"; + } + + @Override + public String getPlatformVersionEnvString() { + return "test"; + } + }; + + vp.mAuthenticationType = TYPE_USERPASS; + vp.mAuthRetry = AUTH_RETRY_NOINTERACT; + String config = vp.getConfigFile(RuntimeEnvironment.application, false); + Assert.assertTrue(config.contains("\nauth-retry nointeract\n")); + + } +} -- cgit v1.2.3