Currently tests use FakeAccountManagerDelegate to supply fake accounts. It was nice at the beginning, but now AccountManagerFacade is a huge class with asynchronous cache, account filtering, etc. There are two major drawbacks from it: 1. This asynchronous logic makes tests brittle. 2. It adds extra limitations on the test environment - accounts have to be added/removed on a background thread [1], so it's hard to use in Robolectric tests, etc. Before adding a fake implementation for AccountManagerFacade it makes sense to condense the API a bit, at it currently have too many things that could be removed. [1] https://cs.chromium.org/chromium/src/components/signin/core/browser/android/javatests/src/org/chromium/components/signin/test/util/FakeAccountManagerDelegate.java?l=221&rcl=01208718fb14954d7e93da0c900968b8707c3b67
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9bc8135bc22a95c29dda54456c4f35d01adccdb1 commit 9bc8135bc22a95c29dda54456c4f35d01adccdb1 Author: Boris Sazonov <bsazonov@chromium.org> Date: Tue Dec 18 10:58:24 2018 [Signin][Android] Move FakeProfileDataSource to its own file This CL moves FakeProfileDataSource that was nested in FakeAccountManagerDelegate to a separate file. This class will be later used by a fake AccountManagerFacade implementation. Bug: 914920 Change-Id: I835d8394c349795f612b5703524491eb68105e7f Reviewed-on: https://chromium-review.googlesource.com/c/1380549 Reviewed-by: Mihai Sardarescu <msarda@chromium.org> Commit-Queue: Boris Sazonov <bsazonov@chromium.org> Cr-Commit-Position: refs/heads/master@{#617438} [modify] https://crrev.com/9bc8135bc22a95c29dda54456c4f35d01adccdb1/components/signin/core/browser/android/BUILD.gn [modify] https://crrev.com/9bc8135bc22a95c29dda54456c4f35d01adccdb1/components/signin/core/browser/android/javatests/src/org/chromium/components/signin/test/util/FakeAccountManagerDelegate.java [add] https://crrev.com/9bc8135bc22a95c29dda54456c4f35d01adccdb1/components/signin/core/browser/android/javatests/src/org/chromium/components/signin/test/util/FakeProfileDataSource.java
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a3087495b587f37b96f2a548e1bcfa91f1da5aea commit a3087495b587f37b96f2a548e1bcfa91f1da5aea Author: Boris Sazonov <bsazonov@chromium.org> Date: Wed Dec 26 20:39:43 2018 [Signin][Android] Move methods for tokens to OAuth2TokenService This CL moves from AccountManagerFacade to OAuth2TokenService helpers used to get and invalidate OAuth2 tokens. These helpers implement asynchronous interface on top of the synchronous one and perform retries if anything fails. Also, this CL renames methods to get and invalidate tokens to achieve consistency with native OAuth2TokenService and OAuth2 common terminology. Bug: 500104 , 914920 Change-Id: I654a23a81c9c5a2c3f311c10679b2ef6ab3e7da9 Reviewed-on: https://chromium-review.googlesource.com/c/1386785 Reviewed-by: Yusuf Ozuysal <yusufo@chromium.org> Reviewed-by: Mihai Sardarescu <msarda@chromium.org> Reviewed-by: Tatiana Gornak <melandory@chromium.org> Commit-Queue: Boris Sazonov <bsazonov@chromium.org> Cr-Commit-Position: refs/heads/master@{#618958} [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiController.java [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/chrome/android/javatests/src/org/chromium/chrome/browser/signin/OAuth2TokenServiceTest.java [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/components/invalidation/impl/android/DEPS [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationClientService.java [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountManagerFacade.java [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/components/signin/core/browser/android/java/src/org/chromium/components/signin/OAuth2TokenService.java [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/components/signin/core/browser/oauth2_token_service_delegate_android.cc [modify] https://crrev.com/a3087495b587f37b96f2a548e1bcfa91f1da5aea/components/sync/android/java/src/org/chromium/components/sync/SyncConstants.java
Comment 1 by bsazonov@chromium.org
, Dec 13