Merge "Reinstate new VPN uid filtering unit tests" am: 14ae90a4a6

am: c5f2f8e08d

Change-Id: Ic2faef44831575b2d03bc00ef2553d5c549adc95
This commit is contained in:
Rubin Xu
2019-04-24 03:05:12 -07:00
committed by android-build-merger

View File

@@ -16,6 +16,8 @@
package com.android.server; package com.android.server;
import static android.content.pm.PackageManager.GET_PERMISSIONS;
import static android.content.pm.PackageManager.MATCH_ANY_USER;
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION; import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
import static android.net.ConnectivityManager.NETID_UNSET; import static android.net.ConnectivityManager.NETID_UNSET;
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF; import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
@@ -103,6 +105,7 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo; import android.content.pm.UserInfo;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
@@ -146,6 +149,7 @@ import android.net.metrics.IpConnectivityLog;
import android.net.shared.NetworkMonitorUtils; import android.net.shared.NetworkMonitorUtils;
import android.net.shared.PrivateDnsConfig; import android.net.shared.PrivateDnsConfig;
import android.net.util.MultinetworkPolicyTracker; import android.net.util.MultinetworkPolicyTracker;
import android.os.Binder;
import android.os.ConditionVariable; import android.os.ConditionVariable;
import android.os.Handler; import android.os.Handler;
import android.os.HandlerThread; import android.os.HandlerThread;
@@ -272,6 +276,7 @@ public class ConnectivityServiceTest {
@Mock IDnsResolver mMockDnsResolver; @Mock IDnsResolver mMockDnsResolver;
@Mock INetd mMockNetd; @Mock INetd mMockNetd;
@Mock NetworkStackClient mNetworkStack; @Mock NetworkStackClient mNetworkStack;
@Mock PackageManager mPackageManager;
@Mock UserManager mUserManager; @Mock UserManager mUserManager;
private ArgumentCaptor<ResolverParamsParcel> mResolverParamsParcelCaptor = private ArgumentCaptor<ResolverParamsParcel> mResolverParamsParcelCaptor =
@@ -357,7 +362,12 @@ public class ConnectivityServiceTest {
public Resources getResources() { public Resources getResources() {
return mResources; return mResources;
} }
}
@Override
public PackageManager getPackageManager() {
return mPackageManager;
}
}
public void waitForIdle(int timeoutMsAsInt) { public void waitForIdle(int timeoutMsAsInt) {
long timeoutMs = timeoutMsAsInt; long timeoutMs = timeoutMsAsInt;
@@ -1232,6 +1242,7 @@ public class ConnectivityServiceTest {
if (Looper.myLooper() == null) { if (Looper.myLooper() == null) {
Looper.prepare(); Looper.prepare();
} }
mockDefaultPackages();
FakeSettingsProvider.clearSettingsProvider(); FakeSettingsProvider.clearSettingsProvider();
mServiceContext = new MockContext(InstrumentationRegistry.getContext(), mServiceContext = new MockContext(InstrumentationRegistry.getContext(),
@@ -1284,7 +1295,24 @@ public class ConnectivityServiceTest {
FakeSettingsProvider.clearSettingsProvider(); FakeSettingsProvider.clearSettingsProvider();
} }
private static int transportToLegacyType(int transport) { private void mockDefaultPackages() throws Exception {
final String testPackageName = mContext.getPackageName();
final PackageInfo testPackageInfo = mContext.getPackageManager().getPackageInfo(
testPackageName, PackageManager.GET_PERMISSIONS);
when(mPackageManager.getPackagesForUid(Binder.getCallingUid())).thenReturn(
new String[] {testPackageName});
when(mPackageManager.getPackageInfoAsUser(eq(testPackageName), anyInt(),
eq(UserHandle.getCallingUserId()))).thenReturn(testPackageInfo);
when(mPackageManager.getInstalledPackages(eq(GET_PERMISSIONS | MATCH_ANY_USER))).thenReturn(
Arrays.asList(new PackageInfo[] {
buildPackageInfo(/* SYSTEM */ false, APP1_UID),
buildPackageInfo(/* SYSTEM */ false, APP2_UID),
buildPackageInfo(/* SYSTEM */ false, VPN_UID)
}));
}
private static int transportToLegacyType(int transport) {
switch (transport) { switch (transport) {
case TRANSPORT_ETHERNET: case TRANSPORT_ETHERNET:
return TYPE_ETHERNET; return TYPE_ETHERNET;
@@ -6169,7 +6197,6 @@ public class ConnectivityServiceTest {
} }
@Test @Test
@Ignore
public void testFullyRoutedVpnResultsInInterfaceFilteringRules() throws Exception { public void testFullyRoutedVpnResultsInInterfaceFilteringRules() throws Exception {
LinkProperties lp = new LinkProperties(); LinkProperties lp = new LinkProperties();
lp.setInterfaceName("tun0"); lp.setInterfaceName("tun0");
@@ -6196,7 +6223,6 @@ public class ConnectivityServiceTest {
} }
@Test @Test
@Ignore
public void testLegacyVpnDoesNotResultInInterfaceFilteringRule() throws Exception { public void testLegacyVpnDoesNotResultInInterfaceFilteringRule() throws Exception {
LinkProperties lp = new LinkProperties(); LinkProperties lp = new LinkProperties();
lp.setInterfaceName("tun0"); lp.setInterfaceName("tun0");
@@ -6210,7 +6236,6 @@ public class ConnectivityServiceTest {
} }
@Test @Test
@Ignore
public void testLocalIpv4OnlyVpnDoesNotResultInInterfaceFilteringRule() public void testLocalIpv4OnlyVpnDoesNotResultInInterfaceFilteringRule()
throws Exception { throws Exception {
LinkProperties lp = new LinkProperties(); LinkProperties lp = new LinkProperties();
@@ -6226,7 +6251,6 @@ public class ConnectivityServiceTest {
} }
@Test @Test
@Ignore
public void testVpnHandoverChangesInterfaceFilteringRule() throws Exception { public void testVpnHandoverChangesInterfaceFilteringRule() throws Exception {
LinkProperties lp = new LinkProperties(); LinkProperties lp = new LinkProperties();
lp.setInterfaceName("tun0"); lp.setInterfaceName("tun0");
@@ -6276,7 +6300,6 @@ public class ConnectivityServiceTest {
} }
@Test @Test
@Ignore
public void testUidUpdateChangesInterfaceFilteringRule() throws Exception { public void testUidUpdateChangesInterfaceFilteringRule() throws Exception {
LinkProperties lp = new LinkProperties(); LinkProperties lp = new LinkProperties();
lp.setInterfaceName("tun0"); lp.setInterfaceName("tun0");