Commit b264ce95 authored by Alice Wang's avatar Alice Wang Committed by Chromium LUCI CQ

[Android][Test] Refactor the structure of AccountHolder

This CL refactors the structure of AccountHolder to make it more
convenient to use in tests.

Bug: 1161437
Change-Id: I97e5c1b9d6ff577630f98c9ea6b219a7b8b9a8dd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2602283
Commit-Queue: Alice Wang <aliceywang@chromium.org>
Reviewed-by: default avatarTanmoy Mollik <triploblastic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#839451}
parent a8b6155b
...@@ -10,7 +10,9 @@ import androidx.annotation.NonNull; ...@@ -10,7 +10,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.components.signin.AccessTokenData; import org.chromium.components.signin.AccessTokenData;
import org.chromium.components.signin.AccountUtils;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
...@@ -99,6 +101,16 @@ public class AccountHolder { ...@@ -99,6 +101,16 @@ public class AccountHolder {
&& mAccount.equals(((AccountHolder) that).getAccount()); && mAccount.equals(((AccountHolder) that).getAccount());
} }
/**
* Creates builder of {@link AccountHolder} for the given account email.
*/
public static Builder builder(String accountEmail) {
return new Builder(AccountUtils.createAccountFromName(accountEmail));
}
/**
* Creates builder of {@link AccountHolder} for the given account.
*/
public static Builder builder(@NonNull Account account) { public static Builder builder(@NonNull Account account) {
return new Builder(account); return new Builder(account);
} }
...@@ -118,11 +130,11 @@ public class AccountHolder { ...@@ -118,11 +130,11 @@ public class AccountHolder {
* Used to construct AccountHolder instances. * Used to construct AccountHolder instances.
*/ */
public static class Builder { public static class Builder {
private Account mAccount; private final Account mAccount;
private Map<String, String> mAuthTokens = new HashMap<>(); private Map<String, String> mAuthTokens = new HashMap<>();
private Map<String, Boolean> mHasBeenAccepted = new HashMap<>(); private Map<String, Boolean> mHasBeenAccepted = new HashMap<>();
private boolean mAlwaysAccept; private boolean mAlwaysAccept;
private Set<String> mFeatures = new HashSet<>(); private final Set<String> mFeatures = new HashSet<>();
Builder(@NonNull Account account) { Builder(@NonNull Account account) {
mAccount = account; mAccount = account;
...@@ -149,13 +161,10 @@ public class AccountHolder { ...@@ -149,13 +161,10 @@ public class AccountHolder {
} }
/** /**
* Sets the set of features for this account. * Adds features to the set of features for this account.
*
* @param features The set of account features.
* @return This object, for chaining method calls.
*/ */
public Builder featureSet(@NonNull Set<String> features) { public Builder addFeatures(String... features) {
mFeatures = features; Collections.addAll(mFeatures, features);
return this; return this;
} }
......
...@@ -37,8 +37,6 @@ import org.chromium.components.signin.test.util.AccountHolder; ...@@ -37,8 +37,6 @@ import org.chromium.components.signin.test.util.AccountHolder;
import org.chromium.components.signin.test.util.FakeAccountManagerDelegate; import org.chromium.components.signin.test.util.FakeAccountManagerDelegate;
import org.chromium.testing.local.CustomShadowUserManager; import org.chromium.testing.local.CustomShadowUserManager;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
...@@ -225,15 +223,14 @@ public class AccountManagerFacadeRobolectricTest { ...@@ -225,15 +223,14 @@ public class AccountManagerFacadeRobolectricTest {
assertChildAccountStatus(bothAccount, ChildAccountStatus.REGULAR_CHILD); assertChildAccountStatus(bothAccount, ChildAccountStatus.REGULAR_CHILD);
} }
private Account addTestAccount(String accountName, String... features) { private Account addTestAccount(String accountEmail, String... features) {
Account account = AccountUtils.createAccountFromName(accountName); AccountHolder holder = AccountHolder.builder(accountEmail)
AccountHolder holder = AccountHolder.builder(account)
.alwaysAccept(true) .alwaysAccept(true)
.featureSet(new HashSet<>(Arrays.asList(features))) .addFeatures(features)
.build(); .build();
mDelegate.addAccountHolderExplicitly(holder); mDelegate.addAccountHolderExplicitly(holder);
Assert.assertFalse(((AccountManagerFacadeImpl) mFacade).isUpdatePending().get()); Assert.assertFalse(((AccountManagerFacadeImpl) mFacade).isUpdatePending().get());
return account; return holder.getAccount();
} }
private void removeTestAccount(Account account) { private void removeTestAccount(Account account) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment