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 Merged-In: Ic2faef44831575b2d03bc00ef2553d5c549adc95 Change-Id: Ic2faef44831575b2d03bc00ef2553d5c549adc95 (cherry picked from commit 4469b1d8a543613d91a58a88488fd2022a0696b9)
This commit is contained in:
@@ -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;
|
||||||
@@ -145,6 +148,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;
|
||||||
@@ -271,6 +275,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<String[]> mStringArrayCaptor = ArgumentCaptor.forClass(String[].class);
|
private ArgumentCaptor<String[]> mStringArrayCaptor = ArgumentCaptor.forClass(String[].class);
|
||||||
@@ -355,7 +360,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;
|
||||||
@@ -1230,6 +1240,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(),
|
||||||
@@ -1282,7 +1293,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;
|
||||||
@@ -6153,7 +6181,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");
|
||||||
@@ -6180,7 +6207,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");
|
||||||
@@ -6194,7 +6220,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();
|
||||||
@@ -6210,7 +6235,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");
|
||||||
@@ -6260,7 +6284,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");
|
||||||
|
|||||||
Reference in New Issue
Block a user