Commit 682ab895 authored by Alice Wang's avatar Alice Wang Committed by Commit Bot

[Signin][Android] Extract interface for AccountManagerFacade

This CL extracts an interface for AccountManagerFacade to decouple the
dependency to the AccountManagerFacade implementation in most places.

Bug: 1063869
Change-Id: I97496438cecd571b36b212ee510c408f8b4af702
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2144193Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Commit-Queue: Alice Wang <aliceywang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#759977}
parent a46b34fa
......@@ -82,7 +82,7 @@ import org.chromium.chrome.browser.webapps.WebappRegistry;
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
import org.chromium.components.browser_ui.util.ConversionUtils;
import org.chromium.components.minidump_uploader.CrashFileManager;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountsChangeObserver;
import org.chromium.components.viz.common.VizSwitches;
......@@ -166,7 +166,7 @@ public class ProcessInitializationHandler {
// only once and before AccountMangerHelper.get(...) is called to avoid using the
// default AccountManagerDelegate.
AccountManagerFacadeProvider.setInstance(
new AccountManagerFacade(AppHooks.get().createAccountManagerDelegate()));
new AccountManagerFacadeImpl(AppHooks.get().createAccountManagerDelegate()));
// Set the unique identification generator for invalidations. The
// invalidations system can start and attempt to fetch the client ID
......
......@@ -18,7 +18,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.test.util.AdvancedMockContext;
import org.chromium.base.test.util.Feature;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountUtils;
import org.chromium.components.signin.test.util.AccountHolder;
......@@ -67,7 +67,7 @@ public class FirstRunUtilsTest {
mAccountManager = new FakeAuthenticationAccountManager(accountType);
TestThreadUtils.runOnUiThreadBlocking(() -> {
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacade(mAccountManager));
new AccountManagerFacadeImpl(mAccountManager));
});
}
......
......@@ -23,7 +23,7 @@ import org.chromium.chrome.test.omaha.AttributeFinder;
import org.chromium.chrome.test.omaha.MockRequestGenerator;
import org.chromium.chrome.test.omaha.MockRequestGenerator.DeviceType;
import org.chromium.chrome.test.omaha.MockRequestGenerator.SignedInStatus;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.test.util.AccountHolder;
import org.chromium.components.signin.test.util.FakeAccountManagerDelegate;
......@@ -183,7 +183,7 @@ public class RequestGeneratorTest {
}
TestThreadUtils.runOnUiThreadBlocking(() -> {
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacade(accountManager));
new AccountManagerFacadeImpl(accountManager));
});
String sessionId = "random_session_id";
......
......@@ -23,7 +23,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.components.signin.AccountManagerDelegate;
import org.chromium.components.signin.AccountManagerDelegateException;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import java.util.HashSet;
......@@ -64,7 +64,7 @@ public class ToSAckedReceiverTest {
accounts[0] = new Account(GOOGLE_ACCOUNT, "LegitAccount");
Mockito.doReturn(accounts).when(accountManagerDelegate).getAccountsSync();
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacade(accountManagerDelegate));
new AccountManagerFacadeImpl(accountManagerDelegate));
Assert.assertTrue(ToSAckedReceiver.checkAnyUserHasSeenToS());
}
}
......@@ -85,7 +85,7 @@ import org.chromium.chrome.test.util.browser.Features;
import org.chromium.chrome.test.util.browser.Features.DisableFeatures;
import org.chromium.chrome.test.util.browser.suggestions.ContentSuggestionsTestUtils.CategoryInfoBuilder;
import org.chromium.chrome.test.util.browser.suggestions.FakeSuggestionsSource;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.identitymanager.IdentityManager;
import org.chromium.net.NetworkChangeNotifier;
import org.chromium.ui.modelutil.RecyclerViewAdapter;
......@@ -98,7 +98,7 @@ import java.util.List;
import java.util.Locale;
/**
* Unit tests for {@link NewTabPageAdapter}. {@link AccountManagerFacade} uses AsyncTasks, thus
* Unit tests for {@link NewTabPageAdapter}. {@link AccountManagerFacadeImpl} uses AsyncTasks, thus
* the need for {@link CustomShadowAsyncTask}.
*/
@RunWith(BaseRobolectricTestRunner.class)
......@@ -283,7 +283,7 @@ public class NewTabPageAdapterTest {
* TODO(https://crbug.com/914920): replace this with a mock after a fake implementation for
* AccountManagerFacade is available.
*/
@Implements(AccountManagerFacade.class)
@Implements(AccountManagerFacadeImpl.class)
public static class ShadowAccountManagerFacade {
private static boolean sPopulated;
......
......@@ -19,7 +19,7 @@ import org.chromium.chrome.browser.suggestions.tile.TileSectionType;
import org.chromium.chrome.browser.suggestions.tile.TileSource;
import org.chromium.chrome.browser.suggestions.tile.TileTitleSource;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountUtils;
import org.chromium.components.signin.test.util.AccountHolder;
......@@ -99,13 +99,13 @@ public class NewTabPageTestUtils {
public static void setUpTestAccount() {
FakeAccountManagerDelegate fakeAccountManager = new FakeAccountManagerDelegate(
FakeAccountManagerDelegate.ENABLE_PROFILE_DATA_SOURCE);
TestThreadUtils.runOnUiThreadBlocking(() -> {
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacade(fakeAccountManager));
});
AccountManagerFacadeImpl accountManagerFacade =
TestThreadUtils.runOnUiThreadBlockingNoException(
() -> new AccountManagerFacadeImpl(fakeAccountManager));
AccountManagerFacadeProvider.setInstanceForTests(accountManagerFacade);
Account account = AccountUtils.createAccountFromName("test@gmail.com");
fakeAccountManager.addAccountHolderExplicitly(new AccountHolder.Builder(account).build());
assertFalse(AccountManagerFacadeProvider.getInstance().isUpdatePending().get());
assertFalse(accountManagerFacade.isUpdatePending().get());
assertFalse(SharedPreferencesManager.getInstance().readBoolean(
ChromePreferenceKeys.SIGNIN_PROMO_NTP_PROMO_DISMISSED, false));
}
......
......@@ -18,7 +18,7 @@ import org.chromium.chrome.browser.signin.IdentityServicesProvider;
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.SigninPreferencesManager;
import org.chromium.chrome.browser.sync.ProfileSyncService;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountTrackerService;
import org.chromium.components.signin.AccountUtils;
......@@ -56,7 +56,7 @@ public final class SigninTestUtil {
FakeAccountManagerDelegate.DISABLE_PROFILE_DATA_SOURCE);
TestThreadUtils.runOnUiThreadBlocking(() -> {
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacade(sAccountManager));
new AccountManagerFacadeImpl(sAccountManager));
});
}
......
......@@ -7,7 +7,7 @@ package org.chromium.components.paintpreview.player;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.test.util.FakeAccountManagerDelegate;
import org.chromium.content_public.browser.test.NativeLibraryTestRule;
......@@ -28,7 +28,7 @@ public class PaintPreviewTestRule extends NativeLibraryTestRule {
FakeAccountManagerDelegate.DISABLE_PROFILE_DATA_SOURCE);
TestThreadUtils.runOnUiThreadBlocking(() -> {
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacade(mAccountManager));
new AccountManagerFacadeImpl(mAccountManager));
});
loadNativeLibraryAndInitBrowserProcess();
}
......
......@@ -29,6 +29,7 @@ android_library("java") {
"java/src/org/chromium/components/signin/AccountManagerDelegate.java",
"java/src/org/chromium/components/signin/AccountManagerDelegateException.java",
"java/src/org/chromium/components/signin/AccountManagerFacade.java",
"java/src/org/chromium/components/signin/AccountManagerFacadeImpl.java",
"java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java",
"java/src/org/chromium/components/signin/AccountManagerResult.java",
"java/src/org/chromium/components/signin/AccountTrackerService.java",
......
......@@ -92,7 +92,7 @@ public final class ChildAccountInfoFetcher {
@CalledByNative
private static void initializeForTests() {
AccountManagerDelegate delegate = new SystemAccountManagerDelegate();
AccountManagerFacadeProvider.setInstanceForTests(new AccountManagerFacade(delegate));
AccountManagerFacadeProvider.setInstanceForTests(new AccountManagerFacadeImpl(delegate));
}
@NativeMethods
......
......@@ -18,7 +18,7 @@ import org.junit.runner.RunWith;
import org.chromium.base.ThreadUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.components.signin.AccountManagerDelegateException;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.test.util.FakeAccountManagerDelegate;
......@@ -37,7 +37,8 @@ public class AccountManagerFacadeTest {
@Before
public void setUp() {
ThreadUtils.runOnUiThreadBlocking(() -> {
AccountManagerFacadeProvider.setInstanceForTests(new AccountManagerFacade(mDelegate));
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacadeImpl(mDelegate));
});
}
......
......@@ -9,7 +9,7 @@ import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.chromium.base.ThreadUtils;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.ProfileDataSource;
......@@ -55,7 +55,7 @@ public class AccountManagerTestRule implements TestRule {
mProfileDataSourceFlag, blockGetAccountsFlag);
ThreadUtils.runOnUiThreadBlocking(() -> {
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacade(mDelegate));
new AccountManagerFacadeImpl(mDelegate));
});
try {
statement.evaluate();
......
......@@ -28,6 +28,7 @@ import org.chromium.base.task.test.CustomShadowAsyncTask;
import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.components.signin.AccountManagerDelegateException;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountUtils;
import org.chromium.components.signin.ChildAccountStatus;
import org.chromium.components.signin.ProfileDataSource;
......@@ -62,14 +63,14 @@ public class AccountManagerFacadeRobolectricTest {
mDelegate = new FakeAccountManagerDelegate(
FakeAccountManagerDelegate.ENABLE_PROFILE_DATA_SOURCE);
Assert.assertFalse(mDelegate.isRegisterObserversCalled());
mFacade = new AccountManagerFacade(mDelegate);
mFacade = new AccountManagerFacadeImpl(mDelegate);
Assert.assertTrue(mDelegate.isRegisterObserversCalled());
}
private void setAccountRestrictionPatterns(String... patterns) {
Bundle restrictions = new Bundle();
restrictions.putStringArray(
AccountManagerFacade.ACCOUNT_RESTRICTION_PATTERNS_KEY, patterns);
AccountManagerFacadeImpl.ACCOUNT_RESTRICTION_PATTERNS_KEY, patterns);
mShadowUserManager.setApplicationRestrictions(
RuntimeEnvironment.application.getPackageName(), restrictions);
RuntimeEnvironment.application.sendBroadcast(
......@@ -225,13 +226,13 @@ public class AccountManagerFacadeRobolectricTest {
@SmallTest
public void testCheckChildAccount() {
Account testAccount = addTestAccount("test@gmail.com");
Account ucaAccount =
addTestAccount("uca@gmail.com", AccountManagerFacade.FEATURE_IS_CHILD_ACCOUNT_KEY);
Account usmAccount =
addTestAccount("usm@gmail.com", AccountManagerFacade.FEATURE_IS_USM_ACCOUNT_KEY);
Account ucaAccount = addTestAccount(
"uca@gmail.com", AccountManagerFacadeImpl.FEATURE_IS_CHILD_ACCOUNT_KEY);
Account usmAccount = addTestAccount(
"usm@gmail.com", AccountManagerFacadeImpl.FEATURE_IS_USM_ACCOUNT_KEY);
Account bothAccount = addTestAccount("uca_usm@gmail.com",
AccountManagerFacade.FEATURE_IS_CHILD_ACCOUNT_KEY,
AccountManagerFacade.FEATURE_IS_USM_ACCOUNT_KEY);
AccountManagerFacadeImpl.FEATURE_IS_CHILD_ACCOUNT_KEY,
AccountManagerFacadeImpl.FEATURE_IS_USM_ACCOUNT_KEY);
assertChildAccountStatus(testAccount, ChildAccountStatus.NOT_CHILD);
assertChildAccountStatus(ucaAccount, ChildAccountStatus.REGULAR_CHILD);
......@@ -246,7 +247,7 @@ public class AccountManagerFacadeRobolectricTest {
.featureSet(new HashSet<>(Arrays.asList(features)))
.build();
mDelegate.addAccountHolderExplicitly(holder);
Assert.assertFalse(mFacade.isUpdatePending().get());
Assert.assertFalse(((AccountManagerFacadeImpl) mFacade).isUpdatePending().get());
return account;
}
......
......@@ -20,7 +20,7 @@ import org.chromium.base.ThreadUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.Feature;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeImpl;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountUtils;
import org.chromium.components.signin.ChromeSigninController;
......@@ -143,7 +143,7 @@ public class AndroidSyncSettingsTest {
FakeAccountManagerDelegate.DISABLE_PROFILE_DATA_SOURCE);
ThreadUtils.runOnUiThreadBlocking(() -> {
AccountManagerFacadeProvider.setInstanceForTests(
new AccountManagerFacade(mAccountManager));
new AccountManagerFacadeImpl(mAccountManager));
});
mAccount = addTestAccount("account@example.com");
mAlternateAccount = addTestAccount("alternate@example.com");
......
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