New issue
Advanced search Search tips

Issue 914920 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug

Blocked on:
issue 500104



Sign in to add a comment

Create fake AccountManagerFacade implementation for tests

Project Member Reported by bsazonov@chromium.org, Dec 13

Issue description

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
 
Blockedon: 500104
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 18

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

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 26

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

Sign in to add a comment