AF: Unit tests for PasswordsPreferenceController.

Bug: 169455298
Test: atest SettingsUnitTests:com.android.settings.applications.autofill.PasswordsPreferenceControllerTest
Change-Id: I5cbbb17f192b963a634690a95a591d3f51f47436
This commit is contained in:
Ahaan Ugale
2021-03-06 15:48:07 -08:00
parent 1d1f3ea85f
commit 1515b2bb78
2 changed files with 143 additions and 4 deletions

View File

@@ -31,6 +31,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
@@ -47,16 +48,23 @@ public class PasswordsPreferenceController extends BasePreferenceController {
private final List<AutofillServiceInfo> mServices;
public PasswordsPreferenceController(Context context, String preferenceKey) {
this(context, preferenceKey,
AutofillServiceInfo.getAvailableServices(context, UserHandle.myUserId()));
}
@VisibleForTesting
public PasswordsPreferenceController(
Context context, String preferenceKey, List<AutofillServiceInfo> availableServices) {
super(context, preferenceKey);
mPm = context.getPackageManager();
mIconFactory = IconDrawableFactory.newInstance(mContext);
mServices = AutofillServiceInfo.getAvailableServices(mContext, UserHandle.myUserId());
for (int i = mServices.size() - 1; i >= 0; i--) {
final String passwordsActivity = mServices.get(i).getPasswordsActivity();
for (int i = availableServices.size() - 1; i >= 0; i--) {
final String passwordsActivity = availableServices.get(i).getPasswordsActivity();
if (TextUtils.isEmpty(passwordsActivity)) {
mServices.remove(i);
availableServices.remove(i);
}
}
mServices = availableServices;
}
@Override