From 91245687c431c3d0335f163d1938aea75ea067cf Mon Sep 17 00:00:00 2001 From: Ahaan Ugale Date: Sat, 6 Mar 2021 15:46:51 -0800 Subject: [PATCH] AF: Add a TestDataBuilder to AutofillServiceInfo. This is now used in unit tests for the settings PasswordsPreferenceController. Bug: 169455298 Test: atest SettingsUnitTests:com.android.settings.applications.autofill.PasswordsPreferenceControllerTest Change-Id: Ib74f18c692530970357101ec7417b8f187d3858e --- .../service/autofill/AutofillServiceInfo.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/core/java/android/service/autofill/AutofillServiceInfo.java b/core/java/android/service/autofill/AutofillServiceInfo.java index 4c8ee598f5129..00c30b12c93dc 100644 --- a/core/java/android/service/autofill/AutofillServiceInfo.java +++ b/core/java/android/service/autofill/AutofillServiceInfo.java @@ -23,6 +23,7 @@ import android.app.AppGlobals; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; @@ -38,6 +39,7 @@ import android.util.Log; import android.util.Xml; import com.android.internal.R; +import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.util.XmlUtils; @@ -233,6 +235,39 @@ public final class AutofillServiceInfo { return compatibilityPackages; } + /** + * Used by {@link TestDataBuilder}. + */ + private AutofillServiceInfo(String passwordsActivity) { + mServiceInfo = new ServiceInfo(); + mServiceInfo.applicationInfo = new ApplicationInfo(); + mServiceInfo.packageName = "com.android.test"; + mSettingsActivity = null; + mPasswordsActivity = passwordsActivity; + mCompatibilityPackages = null; + mInlineSuggestionsEnabled = false; + } + + /** + * Builds test data for unit tests. + */ + @VisibleForTesting + public static final class TestDataBuilder { + private String mPasswordsActivity; + + public TestDataBuilder() { + } + + public TestDataBuilder setPasswordsActivity(String passwordsActivity) { + mPasswordsActivity = passwordsActivity; + return this; + } + + public AutofillServiceInfo build() { + return new AutofillServiceInfo(mPasswordsActivity); + } + } + @NonNull public ServiceInfo getServiceInfo() { return mServiceInfo;