Reinstate new VPN uid filtering unit tests
Mock out PackageManager and returns correct information corresponding to the test app package itself. Test: atest --generate-new-metrics 10 com.android.server.ConnectivityServiceTest Bug: 114231106 Bug: 130397860 Change-Id: Ib921700eda417f411d7a2c77c1140fba9ab50bbb
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
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.NETID_UNSET;
|
||||
import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
|
||||
@@ -103,6 +105,7 @@ import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.net.ConnectivityManager;
|
||||
@@ -146,6 +149,7 @@ import android.net.metrics.IpConnectivityLog;
|
||||
import android.net.shared.NetworkMonitorUtils;
|
||||
import android.net.shared.PrivateDnsConfig;
|
||||
import android.net.util.MultinetworkPolicyTracker;
|
||||
import android.os.Binder;
|
||||
import android.os.ConditionVariable;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
@@ -272,6 +276,7 @@ public class ConnectivityServiceTest {
|
||||
@Mock IDnsResolver mMockDnsResolver;
|
||||
@Mock INetd mMockNetd;
|
||||
@Mock NetworkStackClient mNetworkStack;
|
||||
@Mock PackageManager mPackageManager;
|
||||
@Mock UserManager mUserManager;
|
||||
|
||||
private ArgumentCaptor<ResolverParamsParcel> mResolverParamsParcelCaptor =
|
||||
@@ -357,6 +362,11 @@ public class ConnectivityServiceTest {
|
||||
public Resources getResources() {
|
||||
return mResources;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PackageManager getPackageManager() {
|
||||
return mPackageManager;
|
||||
}
|
||||
}
|
||||
|
||||
public void waitForIdle(int timeoutMsAsInt) {
|
||||
@@ -1232,6 +1242,7 @@ public class ConnectivityServiceTest {
|
||||
if (Looper.myLooper() == null) {
|
||||
Looper.prepare();
|
||||
}
|
||||
mockDefaultPackages();
|
||||
|
||||
FakeSettingsProvider.clearSettingsProvider();
|
||||
mServiceContext = new MockContext(InstrumentationRegistry.getContext(),
|
||||
@@ -1284,6 +1295,23 @@ public class ConnectivityServiceTest {
|
||||
FakeSettingsProvider.clearSettingsProvider();
|
||||
}
|
||||
|
||||
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) {
|
||||
case TRANSPORT_ETHERNET:
|
||||
@@ -6169,7 +6197,6 @@ public class ConnectivityServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void testFullyRoutedVpnResultsInInterfaceFilteringRules() throws Exception {
|
||||
LinkProperties lp = new LinkProperties();
|
||||
lp.setInterfaceName("tun0");
|
||||
@@ -6196,7 +6223,6 @@ public class ConnectivityServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void testLegacyVpnDoesNotResultInInterfaceFilteringRule() throws Exception {
|
||||
LinkProperties lp = new LinkProperties();
|
||||
lp.setInterfaceName("tun0");
|
||||
@@ -6210,7 +6236,6 @@ public class ConnectivityServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void testLocalIpv4OnlyVpnDoesNotResultInInterfaceFilteringRule()
|
||||
throws Exception {
|
||||
LinkProperties lp = new LinkProperties();
|
||||
@@ -6226,7 +6251,6 @@ public class ConnectivityServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void testVpnHandoverChangesInterfaceFilteringRule() throws Exception {
|
||||
LinkProperties lp = new LinkProperties();
|
||||
lp.setInterfaceName("tun0");
|
||||
@@ -6276,7 +6300,6 @@ public class ConnectivityServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void testUidUpdateChangesInterfaceFilteringRule() throws Exception {
|
||||
LinkProperties lp = new LinkProperties();
|
||||
lp.setInterfaceName("tun0");
|
||||
|
||||
Reference in New Issue
Block a user