From bf8bf735d6bd7b80a32d549cc23552538207d40b Mon Sep 17 00:00:00 2001 From: Ken Chen Date: Wed, 12 May 2021 17:13:46 +0800 Subject: [PATCH] Add testVpnTypesEqual to verify consistency VPN types are defined in both VpnManager.java and NativeVpnType.aidl. The definitions on both sides should match (except TYPE_VPN_NONE). VpnManager.java: TYPE_VPN_NONE = -1 TYPE_VPN_SERVICE = 1 TYPE_VPN_PLATFORM = 2 TYPE_VPN_LEGACY = 3 TYPE_VPN_OEM = 4 NativeVpnType.aidl: SERVICE = 1 PLATFORM = 2 LEGACY = 3 OEM = 4 Bug: N/A Test: atest android.net.VpnManagerTest#testVpnTypesEqual Change-Id: Ie618e227d861100c5318da696140e486af1093a0 --- core/java/android/net/VpnManager.java | 1 - tests/net/java/android/net/VpnManagerTest.java | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/core/java/android/net/VpnManager.java b/core/java/android/net/VpnManager.java index 0d1b31cdb3fa3..662ebb356f4c4 100644 --- a/core/java/android/net/VpnManager.java +++ b/core/java/android/net/VpnManager.java @@ -58,7 +58,6 @@ import java.util.List; * @see Ikev2VpnProfile */ public class VpnManager { - // TODO: add a unit test to ensure that TYPE_VPN_xxx matches android.net.NativeVpnType. /** Type representing a lack of VPN @hide */ @SystemApi(client = MODULE_LIBRARIES) public static final int TYPE_VPN_NONE = -1; diff --git a/tests/net/java/android/net/VpnManagerTest.java b/tests/net/java/android/net/VpnManagerTest.java index c548e30761c9a..3135062138ac5 100644 --- a/tests/net/java/android/net/VpnManagerTest.java +++ b/tests/net/java/android/net/VpnManagerTest.java @@ -28,11 +28,13 @@ import static org.mockito.Mockito.when; import android.content.ComponentName; import android.content.Intent; import android.test.mock.MockContext; +import android.util.SparseArray; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.net.VpnProfile; +import com.android.internal.util.MessageUtils; import org.junit.Before; import org.junit.Test; @@ -119,4 +121,18 @@ public class VpnManagerTest { .setAuthPsk(PSK_BYTES) .build(); } + + @Test + public void testVpnTypesEqual() throws Exception { + SparseArray vmVpnTypes = MessageUtils.findMessageNames( + new Class[] { VpnManager.class }, new String[]{ "TYPE_VPN_" }); + SparseArray nativeVpnType = MessageUtils.findMessageNames( + new Class[] { NativeVpnType.class }, new String[]{ "" }); + + // TYPE_VPN_NONE = -1 is only defined in VpnManager. + assertEquals(vmVpnTypes.size() - 1, nativeVpnType.size()); + for (int i = VpnManager.TYPE_VPN_SERVICE; i < vmVpnTypes.size(); i++) { + assertEquals(vmVpnTypes.get(i), "TYPE_VPN_" + nativeVpnType.get(i)); + } + } }