Skip to content
Snippets Groups Projects
Commit c8a42f6a authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Disable the remaining VPN CTS tests on watches." into main

parents d393732d 5bcbbc1c
No related branches found
No related tags found
No related merge requests found
...@@ -35,12 +35,14 @@ import static org.junit.Assert.assertThrows; ...@@ -35,12 +35,14 @@ import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import static org.junit.Assume.assumeTrue; import static org.junit.Assume.assumeTrue;
import static org.junit.Assume.assumeFalse;
import android.Manifest; import android.Manifest;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.app.AppOpsManager; import android.app.AppOpsManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.Ikev2VpnProfile; import android.net.Ikev2VpnProfile;
import android.net.IpSecAlgorithm; import android.net.IpSecAlgorithm;
...@@ -72,6 +74,7 @@ import com.android.testutils.TestableNetworkCallback; ...@@ -72,6 +74,7 @@ import com.android.testutils.TestableNetworkCallback;
import org.bouncycastle.x509.X509V1CertificateGenerator; import org.bouncycastle.x509.X509V1CertificateGenerator;
import org.junit.After; import org.junit.After;
import org.junit.Before;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -200,6 +203,12 @@ public class Ikev2VpnTest { ...@@ -200,6 +203,12 @@ public class Ikev2VpnTest {
mUserCertKey = generateRandomCertAndKeyPair(); mUserCertKey = generateRandomCertAndKeyPair();
} }
@Before
public void setUp() {
assumeFalse("Skipping test because watches don't support VPN",
sContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH));
}
@After @After
public void tearDown() { public void tearDown() {
for (TestableNetworkCallback callback : mCallbacksToUnregister) { for (TestableNetworkCallback callback : mCallbacksToUnregister) {
......
...@@ -15,12 +15,28 @@ ...@@ -15,12 +15,28 @@
*/ */
package android.net.cts; package android.net.cts;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeFalse;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.VpnService; import android.net.VpnService;
import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor;
import android.platform.test.annotations.AppModeFull; import android.platform.test.annotations.AppModeFull;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.io.File; import java.io.File;
import java.net.DatagramSocket; import java.net.DatagramSocket;
import java.net.Socket; import java.net.Socket;
...@@ -30,12 +46,21 @@ import java.net.Socket; ...@@ -30,12 +46,21 @@ import java.net.Socket;
* blocks us from writing tests for positive cases. For now we only test for * blocks us from writing tests for positive cases. For now we only test for
* negative cases, and we will try to cover the rest in the future. * negative cases, and we will try to cover the rest in the future.
*/ */
public class VpnServiceTest extends AndroidTestCase { @RunWith(AndroidJUnit4.class)
public class VpnServiceTest {
private static final String TAG = VpnServiceTest.class.getSimpleName(); private static final String TAG = VpnServiceTest.class.getSimpleName();
private final Context mContext = InstrumentationRegistry.getContext();
private VpnService mVpnService = new VpnService(); private VpnService mVpnService = new VpnService();
@Before
public void setUp() {
assumeFalse("Skipping test because watches don't support VPN",
mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH));
}
@Test
@AppModeFull(reason = "PackageManager#queryIntentActivities cannot access in instant app mode") @AppModeFull(reason = "PackageManager#queryIntentActivities cannot access in instant app mode")
public void testPrepare() throws Exception { public void testPrepare() throws Exception {
// Should never return null since we are not prepared. // Should never return null since we are not prepared.
...@@ -47,6 +72,7 @@ public class VpnServiceTest extends AndroidTestCase { ...@@ -47,6 +72,7 @@ public class VpnServiceTest extends AndroidTestCase {
assertEquals(1, count); assertEquals(1, count);
} }
@Test
@AppModeFull(reason = "establish() requires prepare(), which requires PackageManager access") @AppModeFull(reason = "establish() requires prepare(), which requires PackageManager access")
public void testEstablish() throws Exception { public void testEstablish() throws Exception {
ParcelFileDescriptor descriptor = null; ParcelFileDescriptor descriptor = null;
...@@ -63,6 +89,7 @@ public class VpnServiceTest extends AndroidTestCase { ...@@ -63,6 +89,7 @@ public class VpnServiceTest extends AndroidTestCase {
} }
} }
@Test
@AppModeFull(reason = "Protecting sockets requires prepare(), which requires PackageManager") @AppModeFull(reason = "Protecting sockets requires prepare(), which requires PackageManager")
public void testProtect_DatagramSocket() throws Exception { public void testProtect_DatagramSocket() throws Exception {
DatagramSocket socket = new DatagramSocket(); DatagramSocket socket = new DatagramSocket();
...@@ -78,6 +105,7 @@ public class VpnServiceTest extends AndroidTestCase { ...@@ -78,6 +105,7 @@ public class VpnServiceTest extends AndroidTestCase {
} }
} }
@Test
@AppModeFull(reason = "Protecting sockets requires prepare(), which requires PackageManager") @AppModeFull(reason = "Protecting sockets requires prepare(), which requires PackageManager")
public void testProtect_Socket() throws Exception { public void testProtect_Socket() throws Exception {
Socket socket = new Socket(); Socket socket = new Socket();
...@@ -93,6 +121,7 @@ public class VpnServiceTest extends AndroidTestCase { ...@@ -93,6 +121,7 @@ public class VpnServiceTest extends AndroidTestCase {
} }
} }
@Test
@AppModeFull(reason = "Protecting sockets requires prepare(), which requires PackageManager") @AppModeFull(reason = "Protecting sockets requires prepare(), which requires PackageManager")
public void testProtect_int() throws Exception { public void testProtect_int() throws Exception {
DatagramSocket socket = new DatagramSocket(); DatagramSocket socket = new DatagramSocket();
...@@ -114,6 +143,7 @@ public class VpnServiceTest extends AndroidTestCase { ...@@ -114,6 +143,7 @@ public class VpnServiceTest extends AndroidTestCase {
} }
} }
@Test
public void testTunDevice() throws Exception { public void testTunDevice() throws Exception {
File file = new File("/dev/tun"); File file = new File("/dev/tun");
assertTrue(file.exists()); assertTrue(file.exists());
......
...@@ -19,6 +19,7 @@ package android.net; ...@@ -19,6 +19,7 @@ package android.net;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assume.assumeFalse;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq; import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
...@@ -27,11 +28,13 @@ import static org.mockito.Mockito.when; ...@@ -27,11 +28,13 @@ import static org.mockito.Mockito.when;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build; import android.os.Build;
import android.test.mock.MockContext; import android.test.mock.MockContext;
import android.util.SparseArray; import android.util.SparseArray;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import androidx.test.InstrumentationRegistry;
import com.android.internal.net.VpnProfile; import com.android.internal.net.VpnProfile;
import com.android.internal.util.MessageUtils; import com.android.internal.util.MessageUtils;
...@@ -47,6 +50,7 @@ import org.junit.runner.RunWith; ...@@ -47,6 +50,7 @@ import org.junit.runner.RunWith;
@RunWith(DevSdkIgnoreRunner.class) @RunWith(DevSdkIgnoreRunner.class)
@DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.R) @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.R)
public class VpnManagerTest { public class VpnManagerTest {
private static final String PKG_NAME = "fooPackage"; private static final String PKG_NAME = "fooPackage";
private static final String SESSION_NAME_STRING = "testSession"; private static final String SESSION_NAME_STRING = "testSession";
...@@ -66,6 +70,9 @@ public class VpnManagerTest { ...@@ -66,6 +70,9 @@ public class VpnManagerTest {
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
assumeFalse("Skipping test because watches don't support VPN",
InstrumentationRegistry.getContext().getPackageManager().hasSystemFeature(
PackageManager.FEATURE_WATCH));
mMockService = mock(IVpnManager.class); mMockService = mock(IVpnManager.class);
mVpnManager = new VpnManager(mMockContext, mMockService); mVpnManager = new VpnManager(mMockContext, mMockService);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment