Merge changes I62c58967,I1dd57fa2
* changes: Remove ConnectivityManager from EnterprisePrivacyFeatureProvider. Stop using ConnectivityManager for VPNs.
This commit is contained in:
@@ -84,11 +84,6 @@ public interface EnterprisePrivacyFeatureProvider {
|
|||||||
*/
|
*/
|
||||||
boolean isAlwaysOnVpnSetInManagedProfile();
|
boolean isAlwaysOnVpnSetInManagedProfile();
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether the Device Owner set a recommended global HTTP proxy.
|
|
||||||
*/
|
|
||||||
boolean isGlobalHttpProxySet();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the number of failed login attempts that the Device Owner or Profile Owner allows
|
* Returns the number of failed login attempts that the Device Owner or Profile Owner allows
|
||||||
* before the current user is wiped, or zero if no such limit is set.
|
* before the current user is wiped, or zero if no such limit is set.
|
||||||
|
@@ -25,6 +25,7 @@ import android.content.pm.ResolveInfo;
|
|||||||
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;
|
||||||
|
import android.net.VpnManager;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -45,18 +46,20 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
|||||||
private final PackageManager mPm;
|
private final PackageManager mPm;
|
||||||
private final UserManager mUm;
|
private final UserManager mUm;
|
||||||
private final ConnectivityManager mCm;
|
private final ConnectivityManager mCm;
|
||||||
|
private final VpnManager mVm;
|
||||||
private final Resources mResources;
|
private final Resources mResources;
|
||||||
|
|
||||||
private static final int MY_USER_ID = UserHandle.myUserId();
|
private static final int MY_USER_ID = UserHandle.myUserId();
|
||||||
|
|
||||||
public EnterprisePrivacyFeatureProviderImpl(Context context, DevicePolicyManager dpm,
|
public EnterprisePrivacyFeatureProviderImpl(Context context, DevicePolicyManager dpm,
|
||||||
PackageManager pm, UserManager um, ConnectivityManager cm,
|
PackageManager pm, UserManager um, ConnectivityManager cm, VpnManager vm,
|
||||||
Resources resources) {
|
Resources resources) {
|
||||||
mContext = context.getApplicationContext();
|
mContext = context.getApplicationContext();
|
||||||
mDpm = dpm;
|
mDpm = dpm;
|
||||||
mPm = pm;
|
mPm = pm;
|
||||||
mUm = um;
|
mUm = um;
|
||||||
mCm = cm;
|
mCm = cm;
|
||||||
|
mVm = vm;
|
||||||
mResources = resources;
|
mResources = resources;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,19 +133,14 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAlwaysOnVpnSetInCurrentUser() {
|
public boolean isAlwaysOnVpnSetInCurrentUser() {
|
||||||
return VpnUtils.isAlwaysOnVpnSet(mCm, MY_USER_ID);
|
return VpnUtils.isAlwaysOnVpnSet(mVm, MY_USER_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAlwaysOnVpnSetInManagedProfile() {
|
public boolean isAlwaysOnVpnSetInManagedProfile() {
|
||||||
final int managedProfileUserId = getManagedProfileUserId();
|
final int managedProfileUserId = getManagedProfileUserId();
|
||||||
return managedProfileUserId != UserHandle.USER_NULL &&
|
return managedProfileUserId != UserHandle.USER_NULL &&
|
||||||
VpnUtils.isAlwaysOnVpnSet(mCm, managedProfileUserId);
|
VpnUtils.isAlwaysOnVpnSet(mVm, managedProfileUserId);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isGlobalHttpProxySet() {
|
|
||||||
return mCm.getGlobalProxy() != null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -14,26 +14,25 @@
|
|||||||
package com.android.settings.enterprise;
|
package com.android.settings.enterprise;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
|
|
||||||
public class GlobalHttpProxyPreferenceController extends AbstractPreferenceController implements
|
public class GlobalHttpProxyPreferenceController extends AbstractPreferenceController implements
|
||||||
PreferenceControllerMixin {
|
PreferenceControllerMixin {
|
||||||
|
|
||||||
private static final String KEY_GLOBAL_HTTP_PROXY = "global_http_proxy";
|
private static final String KEY_GLOBAL_HTTP_PROXY = "global_http_proxy";
|
||||||
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
|
private final ConnectivityManager mCm;
|
||||||
|
|
||||||
public GlobalHttpProxyPreferenceController(Context context) {
|
public GlobalHttpProxyPreferenceController(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
mFeatureProvider = FeatureFactory.getFactory(context)
|
mCm = context.getSystemService(ConnectivityManager.class);
|
||||||
.getEnterprisePrivacyFeatureProvider(context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAvailable() {
|
public boolean isAvailable() {
|
||||||
return mFeatureProvider.isGlobalHttpProxySet();
|
return mCm.getGlobalProxy() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -20,6 +20,7 @@ import android.app.AppGlobals;
|
|||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.VpnManager;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
import androidx.annotation.Keep;
|
import androidx.annotation.Keep;
|
||||||
@@ -169,7 +170,8 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
|||||||
Context.DEVICE_POLICY_SERVICE),
|
Context.DEVICE_POLICY_SERVICE),
|
||||||
appContext.getPackageManager(),
|
appContext.getPackageManager(),
|
||||||
UserManager.get(appContext),
|
UserManager.get(appContext),
|
||||||
(ConnectivityManager) appContext.getSystemService(Context.CONNECTIVITY_SERVICE),
|
appContext.getSystemService(ConnectivityManager.class),
|
||||||
|
appContext.getSystemService(VpnManager.class),
|
||||||
appContext.getResources());
|
appContext.getResources());
|
||||||
}
|
}
|
||||||
return mEnterprisePrivacyFeatureProvider;
|
return mEnterprisePrivacyFeatureProvider;
|
||||||
|
@@ -20,7 +20,6 @@ import android.app.Dialog;
|
|||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.VpnManager;
|
import android.net.VpnManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
@@ -48,7 +47,6 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
|
|||||||
private PackageInfo mPackageInfo;
|
private PackageInfo mPackageInfo;
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
private ConnectivityManager mConnectivityManager;
|
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
private VpnManager mVpnManager;
|
private VpnManager mVpnManager;
|
||||||
|
|
||||||
@@ -93,7 +91,6 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
|
|
||||||
mUserManager = UserManager.get(getContext());
|
mUserManager = UserManager.get(getContext());
|
||||||
mVpnManager = getContext().getSystemService(VpnManager.class);
|
mVpnManager = getContext().getSystemService(VpnManager.class);
|
||||||
}
|
}
|
||||||
@@ -158,8 +155,8 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
|
|||||||
}
|
}
|
||||||
final int userId = getUserId();
|
final int userId = getUserId();
|
||||||
if (mPackageInfo.packageName.equals(VpnUtils.getConnectedPackage(mVpnManager, userId))) {
|
if (mPackageInfo.packageName.equals(VpnUtils.getConnectedPackage(mVpnManager, userId))) {
|
||||||
mConnectivityManager.setAlwaysOnVpnPackageForUser(userId, null,
|
mVpnManager.setAlwaysOnVpnPackageForUser(userId, null, /* lockdownEnabled */ false,
|
||||||
/* lockdownEnabled */ false, /* lockdownAllowlist */ null);
|
/* lockdownAllowlist */ null);
|
||||||
mVpnManager.prepareVpn(mPackageInfo.packageName, VpnConfig.LEGACY_VPN, userId);
|
mVpnManager.prepareVpn(mPackageInfo.packageName, VpnConfig.LEGACY_VPN, userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,6 @@ import android.content.pm.ApplicationInfo;
|
|||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.VpnManager;
|
import android.net.VpnManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
@@ -69,7 +68,6 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
private PackageManager mPackageManager;
|
private PackageManager mPackageManager;
|
||||||
private DevicePolicyManager mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
private ConnectivityManager mConnectivityManager;
|
|
||||||
private VpnManager mVpnManager;
|
private VpnManager mVpnManager;
|
||||||
|
|
||||||
// VPN app info
|
// VPN app info
|
||||||
@@ -122,7 +120,6 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
mPackageManager = getContext().getPackageManager();
|
mPackageManager = getContext().getPackageManager();
|
||||||
mDevicePolicyManager = getContext().getSystemService(DevicePolicyManager.class);
|
mDevicePolicyManager = getContext().getSystemService(DevicePolicyManager.class);
|
||||||
mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
|
|
||||||
mVpnManager = getContext().getSystemService(VpnManager.class);
|
mVpnManager = getContext().getSystemService(VpnManager.class);
|
||||||
|
|
||||||
mPreferenceVersion = findPreference(KEY_VERSION);
|
mPreferenceVersion = findPreference(KEY_VERSION);
|
||||||
@@ -227,8 +224,8 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean setAlwaysOnVpn(boolean isEnabled, boolean isLockdown) {
|
private boolean setAlwaysOnVpn(boolean isEnabled, boolean isLockdown) {
|
||||||
return mConnectivityManager.setAlwaysOnVpnPackageForUser(mUserId,
|
return mVpnManager.setAlwaysOnVpnPackageForUser(mUserId,
|
||||||
isEnabled ? mPackageName : null, isLockdown, /* lockdownWhitelist */ null);
|
isEnabled ? mPackageName : null, isLockdown, /* lockdownAllowlist */ null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateUI() {
|
private void updateUI() {
|
||||||
@@ -261,7 +258,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
|||||||
mPreferenceLockdown.setDisabledByAdmin(admin);
|
mPreferenceLockdown.setDisabledByAdmin(admin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mConnectivityManager.isAlwaysOnVpnPackageSupportedForUser(mUserId, mPackageName)) {
|
if (mVpnManager.isAlwaysOnVpnPackageSupportedForUser(mUserId, mPackageName)) {
|
||||||
// setSummary doesn't override the admin message when user restriction is applied
|
// setSummary doesn't override the admin message when user restriction is applied
|
||||||
mPreferenceAlwaysOn.setSummary(R.string.vpn_always_on_summary);
|
mPreferenceAlwaysOn.setSummary(R.string.vpn_always_on_summary);
|
||||||
// setEnabled is not required here, as checkRestrictionAndSetDisabled
|
// setEnabled is not required here, as checkRestrictionAndSetDisabled
|
||||||
@@ -275,7 +272,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getAlwaysOnVpnPackage() {
|
private String getAlwaysOnVpnPackage() {
|
||||||
return mConnectivityManager.getAlwaysOnVpnPackageForUser(mUserId);
|
return mVpnManager.getAlwaysOnVpnPackageForUser(mUserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isVpnAlwaysOn() {
|
private boolean isVpnAlwaysOn() {
|
||||||
|
@@ -20,7 +20,6 @@ import android.app.Dialog;
|
|||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.VpnManager;
|
import android.net.VpnManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
@@ -177,9 +176,8 @@ public class ConfigDialogFragment extends InstrumentedDialogFragment implements
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ConnectivityManager conn = ConnectivityManager.from(mContext);
|
mService.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null,
|
||||||
conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null,
|
/* lockdownEnabled */ false, /* lockdownAllowlist */ null);
|
||||||
/* lockdownEnabled */ false, /* lockdownWhitelist */ null);
|
|
||||||
VpnUtils.setLockdownVpn(mContext, profile.key);
|
VpnUtils.setLockdownVpn(mContext, profile.key);
|
||||||
} else {
|
} else {
|
||||||
// update only if lockdown vpn has been changed
|
// update only if lockdown vpn has been changed
|
||||||
|
@@ -490,7 +490,7 @@ public class VpnSettings extends RestrictedSettingsFragment implements
|
|||||||
Set<AppVpnInfo> result = new ArraySet<>();
|
Set<AppVpnInfo> result = new ArraySet<>();
|
||||||
for (UserHandle profile : mUserManager.getUserProfiles()) {
|
for (UserHandle profile : mUserManager.getUserProfiles()) {
|
||||||
final int profileId = profile.getIdentifier();
|
final int profileId = profile.getIdentifier();
|
||||||
final String packageName = mConnectivityManager.getAlwaysOnVpnPackageForUser(profileId);
|
final String packageName = mVpnManager.getAlwaysOnVpnPackageForUser(profileId);
|
||||||
if (packageName != null) {
|
if (packageName != null) {
|
||||||
result.add(new AppVpnInfo(profileId, packageName));
|
result.add(new AppVpnInfo(profileId, packageName));
|
||||||
}
|
}
|
||||||
|
@@ -16,7 +16,6 @@
|
|||||||
package com.android.settings.vpn2;
|
package com.android.settings.vpn2;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.VpnManager;
|
import android.net.VpnManager;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -43,15 +42,15 @@ public class VpnUtils {
|
|||||||
|
|
||||||
public static void clearLockdownVpn(Context context) {
|
public static void clearLockdownVpn(Context context) {
|
||||||
KeyStore.getInstance().delete(Credentials.LOCKDOWN_VPN);
|
KeyStore.getInstance().delete(Credentials.LOCKDOWN_VPN);
|
||||||
// Always notify ConnectivityManager after keystore update
|
// Always notify VpnManager after keystore update
|
||||||
getConnectivityManager(context).updateLockdownVpn();
|
getVpnManager(context).updateLockdownVpn();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setLockdownVpn(Context context, String lockdownKey) {
|
public static void setLockdownVpn(Context context, String lockdownKey) {
|
||||||
KeyStore.getInstance().put(Credentials.LOCKDOWN_VPN, lockdownKey.getBytes(),
|
KeyStore.getInstance().put(Credentials.LOCKDOWN_VPN, lockdownKey.getBytes(),
|
||||||
KeyStore.UID_SELF, /* flags */ 0);
|
KeyStore.UID_SELF, /* flags */ 0);
|
||||||
// Always notify ConnectivityManager after keystore update
|
// Always notify VpnManager after keystore update
|
||||||
getConnectivityManager(context).updateLockdownVpn();
|
getVpnManager(context).updateLockdownVpn();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isVpnLockdown(String key) {
|
public static boolean isVpnLockdown(String key) {
|
||||||
@@ -63,7 +62,7 @@ public class VpnUtils {
|
|||||||
if (getLockdownVpn() != null) {
|
if (getLockdownVpn() != null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return getConnectivityManager(context).getAlwaysOnVpnPackageForUser(userId) != null
|
return getVpnManager(context).getAlwaysOnVpnPackageForUser(userId) != null
|
||||||
&& Settings.Secure.getIntForUser(context.getContentResolver(),
|
&& Settings.Secure.getIntForUser(context.getContentResolver(),
|
||||||
Settings.Secure.ALWAYS_ON_VPN_LOCKDOWN, /* default */ 0, userId) != 0;
|
Settings.Secure.ALWAYS_ON_VPN_LOCKDOWN, /* default */ 0, userId) != 0;
|
||||||
}
|
}
|
||||||
@@ -77,16 +76,12 @@ public class VpnUtils {
|
|||||||
return config != null ? config.user : null;
|
return config != null ? config.user : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ConnectivityManager getConnectivityManager(Context context) {
|
|
||||||
return context.getSystemService(ConnectivityManager.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static VpnManager getVpnManager(Context context) {
|
private static VpnManager getVpnManager(Context context) {
|
||||||
return context.getSystemService(VpnManager.class);
|
return context.getSystemService(VpnManager.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAlwaysOnVpnSet(ConnectivityManager cm, final int userId) {
|
public static boolean isAlwaysOnVpnSet(VpnManager vm, final int userId) {
|
||||||
return cm.getAlwaysOnVpnPackageForUser(userId) != null;
|
return vm.getAlwaysOnVpnPackageForUser(userId) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean disconnectLegacyVpn(Context context) {
|
public static boolean disconnectLegacyVpn(Context context) {
|
||||||
|
@@ -39,7 +39,7 @@ import android.content.pm.ResolveInfo;
|
|||||||
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;
|
||||||
import android.net.ProxyInfo;
|
import android.net.VpnManager;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -84,6 +84,7 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
|||||||
private @Mock PackageManager mPackageManager;
|
private @Mock PackageManager mPackageManager;
|
||||||
private @Mock UserManager mUserManager;
|
private @Mock UserManager mUserManager;
|
||||||
private @Mock ConnectivityManager mConnectivityManger;
|
private @Mock ConnectivityManager mConnectivityManger;
|
||||||
|
private @Mock VpnManager mVpnManager;
|
||||||
private Resources mResources;
|
private Resources mResources;
|
||||||
|
|
||||||
private EnterprisePrivacyFeatureProvider mProvider;
|
private EnterprisePrivacyFeatureProvider mProvider;
|
||||||
@@ -99,7 +100,7 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
|||||||
mResources = RuntimeEnvironment.application.getResources();
|
mResources = RuntimeEnvironment.application.getResources();
|
||||||
|
|
||||||
mProvider = new EnterprisePrivacyFeatureProviderImpl(mContext, mDevicePolicyManager,
|
mProvider = new EnterprisePrivacyFeatureProviderImpl(mContext, mDevicePolicyManager,
|
||||||
mPackageManager, mUserManager, mConnectivityManger, mResources);
|
mPackageManager, mUserManager, mConnectivityManger, mVpnManager, mResources);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -201,11 +202,10 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsAlwaysOnVpnSetInCurrentUser() {
|
public void testIsAlwaysOnVpnSetInCurrentUser() {
|
||||||
when(mConnectivityManger.getAlwaysOnVpnPackageForUser(MY_USER_ID)).thenReturn(null);
|
when(mVpnManager.getAlwaysOnVpnPackageForUser(MY_USER_ID)).thenReturn(null);
|
||||||
assertThat(mProvider.isAlwaysOnVpnSetInCurrentUser()).isFalse();
|
assertThat(mProvider.isAlwaysOnVpnSetInCurrentUser()).isFalse();
|
||||||
|
|
||||||
when(mConnectivityManger.getAlwaysOnVpnPackageForUser(MY_USER_ID))
|
when(mVpnManager.getAlwaysOnVpnPackageForUser(MY_USER_ID)).thenReturn(VPN_PACKAGE_ID);
|
||||||
.thenReturn(VPN_PACKAGE_ID);
|
|
||||||
assertThat(mProvider.isAlwaysOnVpnSetInCurrentUser()).isTrue();
|
assertThat(mProvider.isAlwaysOnVpnSetInCurrentUser()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,25 +215,14 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
|||||||
|
|
||||||
mProfiles.add(new UserInfo(MANAGED_PROFILE_USER_ID, "", "", UserInfo.FLAG_MANAGED_PROFILE));
|
mProfiles.add(new UserInfo(MANAGED_PROFILE_USER_ID, "", "", UserInfo.FLAG_MANAGED_PROFILE));
|
||||||
|
|
||||||
when(mConnectivityManger.getAlwaysOnVpnPackageForUser(MANAGED_PROFILE_USER_ID))
|
when(mVpnManager.getAlwaysOnVpnPackageForUser(MANAGED_PROFILE_USER_ID)).thenReturn(null);
|
||||||
.thenReturn(null);
|
|
||||||
assertThat(mProvider.isAlwaysOnVpnSetInManagedProfile()).isFalse();
|
assertThat(mProvider.isAlwaysOnVpnSetInManagedProfile()).isFalse();
|
||||||
|
|
||||||
when(mConnectivityManger.getAlwaysOnVpnPackageForUser(MANAGED_PROFILE_USER_ID))
|
when(mVpnManager.getAlwaysOnVpnPackageForUser(MANAGED_PROFILE_USER_ID))
|
||||||
.thenReturn(VPN_PACKAGE_ID);
|
.thenReturn(VPN_PACKAGE_ID);
|
||||||
assertThat(mProvider.isAlwaysOnVpnSetInManagedProfile()).isTrue();
|
assertThat(mProvider.isAlwaysOnVpnSetInManagedProfile()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testIsGlobalHttpProxySet() {
|
|
||||||
when(mConnectivityManger.getGlobalProxy()).thenReturn(null);
|
|
||||||
assertThat(mProvider.isGlobalHttpProxySet()).isFalse();
|
|
||||||
|
|
||||||
when(mConnectivityManger.getGlobalProxy())
|
|
||||||
.thenReturn(ProxyInfo.buildDirectProxy("localhost", 123));
|
|
||||||
assertThat(mProvider.isGlobalHttpProxySet()).isTrue();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetMaximumFailedPasswordsForWipeInCurrentUser() {
|
public void testGetMaximumFailedPasswordsForWipeInCurrentUser() {
|
||||||
when(mDevicePolicyManager.getDeviceOwnerComponentOnCallingUser()).thenReturn(null);
|
when(mDevicePolicyManager.getDeviceOwnerComponentOnCallingUser()).thenReturn(null);
|
||||||
|
@@ -21,11 +21,11 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.ProxyInfo;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -41,25 +41,23 @@ public class GlobalHttpProxyPreferenceControllerTest {
|
|||||||
|
|
||||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private FakeFeatureFactory mFeatureFactory;
|
@Mock
|
||||||
|
private ConnectivityManager mCm;
|
||||||
|
|
||||||
private GlobalHttpProxyPreferenceController mController;
|
private GlobalHttpProxyPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
|
||||||
mController = new GlobalHttpProxyPreferenceController(mContext);
|
mController = new GlobalHttpProxyPreferenceController(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsAvailable() {
|
public void testIsAvailable() {
|
||||||
when(mFeatureFactory.enterprisePrivacyFeatureProvider.isGlobalHttpProxySet())
|
when(mCm.getGlobalProxy()).thenReturn(null);
|
||||||
.thenReturn(false);
|
|
||||||
assertThat(mController.isAvailable()).isFalse();
|
assertThat(mController.isAvailable()).isFalse();
|
||||||
|
|
||||||
when(mFeatureFactory.enterprisePrivacyFeatureProvider.isGlobalHttpProxySet())
|
when(mCm.getGlobalProxy()).thenReturn(ProxyInfo.buildDirectProxy("localhost", 123));
|
||||||
.thenReturn(true);
|
|
||||||
assertThat(mController.isAvailable()).isTrue();
|
assertThat(mController.isAvailable()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -21,7 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.net.ConnectivityManager;
|
import android.net.VpnManager;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -31,11 +31,11 @@ import org.robolectric.RobolectricTestRunner;
|
|||||||
public final class VpnUtilsTest {
|
public final class VpnUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
public void testIsAlwaysOnVpnSet() {
|
public void testIsAlwaysOnVpnSet() {
|
||||||
final ConnectivityManager cm = mock(ConnectivityManager.class);
|
final VpnManager vm = mock(VpnManager.class);
|
||||||
when(cm.getAlwaysOnVpnPackageForUser(0)).thenReturn("com.example.vpn");
|
when(vm.getAlwaysOnVpnPackageForUser(0)).thenReturn("com.example.vpn");
|
||||||
assertThat(VpnUtils.isAlwaysOnVpnSet(cm, 0)).isTrue();
|
assertThat(VpnUtils.isAlwaysOnVpnSet(vm, 0)).isTrue();
|
||||||
|
|
||||||
when(cm.getAlwaysOnVpnPackageForUser(0)).thenReturn(null);
|
when(vm.getAlwaysOnVpnPackageForUser(0)).thenReturn(null);
|
||||||
assertThat(VpnUtils.isAlwaysOnVpnSet(cm, 0)).isFalse();
|
assertThat(VpnUtils.isAlwaysOnVpnSet(vm, 0)).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user