From ba8ca7839402b4e289d7ff87f5d90f3966361fee Mon Sep 17 00:00:00 2001 From: Benedict Wong Date: Thu, 14 May 2020 19:02:03 -0700 Subject: [PATCH] Add RequiresFeature annotations for IKEv2 VPN profiles This change adds the @RequiresFeature annotation to Ikev2VpnProfile Builder methods, and checks before provisioning VPN profiles. Bug: 156681625 Test: New tests added, passing. Change-Id: I125d8fbe5d67fb877ad7d0636c007cb3e1a9f59b Merged-In: I125d8fbe5d67fb877ad7d0636c007cb3e1a9f59b (cherry picked from commit e84a17dd1706f4c8373047b2023a1ec4b7cf4bf3) --- .../com/android/server/connectivity/VpnTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/net/java/com/android/server/connectivity/VpnTest.java b/tests/net/java/com/android/server/connectivity/VpnTest.java index f8d8a56b57..4ccf79a0cb 100644 --- a/tests/net/java/com/android/server/connectivity/VpnTest.java +++ b/tests/net/java/com/android/server/connectivity/VpnTest.java @@ -199,6 +199,8 @@ public class VpnTest { when(mContext.getString(R.string.config_customVpnAlwaysOnDisconnectedDialogComponent)) .thenReturn(Resources.getSystem().getString( R.string.config_customVpnAlwaysOnDisconnectedDialogComponent)); + when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_IPSEC_TUNNELS)) + .thenReturn(true); when(mSystemServices.isCallerSystem()).thenReturn(true); // Used by {@link Notification.Builder} @@ -730,6 +732,20 @@ public class VpnTest { } } + @Test + public void testProvisionVpnProfileNoIpsecTunnels() throws Exception { + when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_IPSEC_TUNNELS)) + .thenReturn(false); + final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + + try { + checkProvisionVpnProfile( + vpn, true /* expectedResult */, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN); + fail("Expected exception due to missing feature"); + } catch (UnsupportedOperationException expected) { + } + } + @Test public void testProvisionVpnProfilePreconsented() throws Exception { final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN);