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
This commit is contained in:
Ahaan Ugale
2021-03-06 15:46:51 -08:00
parent ed0d866aa7
commit 91245687c4

View File

@@ -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;