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

This commit is contained in:
Treehugger Robot
2023-10-03 16:39:31 +00:00
committed by Gerrit Code Review
3 changed files with 47 additions and 1 deletions

View File

@@ -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;
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 {
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) {

View File

@@ -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;
* 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 {
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 {
} }
} }
@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 {
} }
} }
@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 {
} }
} }
@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 {
} }
} }
@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());

View File

@@ -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;
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;
@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 {
@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);
} }