Commit 09f7f50d authored by Pâris MEULEMAN's avatar Pâris MEULEMAN Committed by Commit Bot

Ensure ProfileOauth2TokenServiceDelegateTest is run

This test was not run following the refactoring of IdentityManager
that happened end of 2019. This reinstate the test, requiring some
change as the identity and signin test helpers changed:
|AccountManagerTestRule| was moved in //chrome and is not accessible
anymore.

Bug: 1091510
Change-Id: I845b4761bf13e1f219de1024d002ccaedd471663
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2292453
Commit-Queue: Pâris Meuleman <pmeuleman@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Auto-Submit: Pâris Meuleman <pmeuleman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789072}
parent 316b5e7e
......@@ -36,3 +36,21 @@ generate_jni("jni_headers") {
"java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java",
]
}
android_library("javatests") {
testonly = true
deps = [
":java",
"//base:base_java",
"//base:base_java_test_support",
"//components/signin/core/browser/android:java",
"//components/signin/core/browser/android:signin_java_test_support",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:com_google_code_findbugs_jsr305_java",
"//third_party/android_support_test_runner:rules_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/junit",
]
sources = [ "javatests/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegateTest.java" ]
}
......@@ -14,10 +14,8 @@ specific_include_rules = {
"+components/signin/core/browser/android/java/src/org/chromium/components/signin/AccessTokenData.java",
],
"ProfileOAuth2TokenServiceDelegateTest.java": [
"+components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountManagerFacade.java",
"+components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java",
"+components/signin/core/browser/android/javatests/src/org/chromium/components/signin/test/util/AccountHolder.java",
"+components/signin/core/browser/android/javatests/src/org/chromium/components/signin/test/util/AccountManagerTestRule.java",
"+components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountUtils.java",
"+components/signin/core/browser/android/javatests/src/org/chromium/components/signin/test/util/FakeAccountManagerFacade.java",
"+components/signin/core/browser/android/java/src/org/chromium/components/signin/AccessTokenData.java",
],
}
......@@ -5,26 +5,21 @@
package org.chromium.components.signin.identitymanager;
import android.accounts.Account;
import android.support.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.chromium.base.ThreadUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.AdvancedMockContext;
// import org.chromium.base.test.util.AdvancedMockContext;
import org.chromium.base.test.util.Feature;
import org.chromium.components.signin.AccessTokenData;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.test.util.AccountHolder;
import org.chromium.components.signin.test.util.AccountManagerTestRule;
import org.chromium.components.signin.AccountUtils;
import org.chromium.components.signin.test.util.FakeAccountManagerFacade;
import java.util.Arrays;
import java.util.concurrent.CountDownLatch;
......@@ -32,10 +27,9 @@ import java.util.concurrent.CountDownLatch;
/** Tests for ProfileOAuth2TokenServiceDelegate. */
@RunWith(BaseJUnit4ClassRunner.class)
public class ProfileOAuth2TokenServiceDelegateTest {
private AdvancedMockContext mContext;
@Rule
public AccountManagerTestRule mAccountManagerTestRule = new AccountManagerTestRule();
private FakeAccountManagerFacade mAccountManagerFacade;
private ProfileOAuth2TokenServiceDelegate mProfileOAuth2TokenServiceDelegate;
/**
......@@ -75,61 +69,47 @@ public class ProfileOAuth2TokenServiceDelegateTest {
@Before
public void setUp() {
mContext = new AdvancedMockContext(InstrumentationRegistry.getTargetContext());
mAccountManagerFacade = new FakeAccountManagerFacade(null);
mProfileOAuth2TokenServiceDelegate = new ProfileOAuth2TokenServiceDelegate(
0 /*nativeProfileOAuth2TokenServiceDelegateDelegate*/,
null /* AccountTrackerService */, AccountManagerFacadeProvider.get());
}
@After
public void tearDown() {
AccountManagerFacadeProvider.resetAccountManagerFacadeForTests();
null /* AccountTrackerService */, mAccountManagerFacade);
}
@Test
@SmallTest
@Feature({"Sync"})
public void testGetAccountsNoAccountsRegistered() {
String[] accounts = ProfileOAuth2TokenServiceDelegate.getAccounts();
Assert.assertEquals("There should be no accounts registered", 0, accounts.length);
String[] sysAccounts = mProfileOAuth2TokenServiceDelegate.getSystemAccountNames();
Assert.assertEquals("There should be no accounts registered", 0, sysAccounts.length);
}
@Test
@SmallTest
@Feature({"Sync"})
public void testGetAccountsOneAccountRegistered() {
Account account1 = AccountManagerFacade.createAccountFromName("foo@gmail.com");
AccountHolder accountHolder1 = AccountHolder.builder(account1).build();
mAccountManagerTestRule.addAccount(accountHolder1);
Account account1 = AccountUtils.createAccountFromName("foo@gmail.com");
mAccountManagerFacade.addAccount(account1);
String[] sysAccounts = mProfileOAuth2TokenServiceDelegate.getSystemAccountNames();
Assert.assertEquals("There should be one registered account", 1, sysAccounts.length);
Assert.assertEquals("The account should be " + account1, account1.name, sysAccounts[0]);
String[] accounts = ProfileOAuth2TokenServiceDelegate.getAccounts();
Assert.assertEquals("There should be zero registered account", 0, accounts.length);
}
@Test
@SmallTest
@Feature({"Sync"})
public void testGetAccountsTwoAccountsRegistered() {
Account account1 = AccountManagerFacade.createAccountFromName("foo@gmail.com");
AccountHolder accountHolder1 = AccountHolder.builder(account1).build();
mAccountManagerTestRule.addAccount(accountHolder1);
Account account2 = AccountManagerFacade.createAccountFromName("bar@gmail.com");
AccountHolder accountHolder2 = AccountHolder.builder(account2).build();
mAccountManagerTestRule.addAccount(accountHolder2);
Account account1 = AccountUtils.createAccountFromName("foo@gmail.com");
mAccountManagerFacade.addAccount(account1);
Account account2 = AccountUtils.createAccountFromName("bar@gmail.com");
mAccountManagerFacade.addAccount(account2);
String[] sysAccounts = mProfileOAuth2TokenServiceDelegate.getSystemAccountNames();
Assert.assertEquals("There should be one registered account", 2, sysAccounts.length);
Assert.assertEquals("There should be two registered account", 2, sysAccounts.length);
Assert.assertTrue("The list should contain " + account1,
Arrays.asList(sysAccounts).contains(account1.name));
Assert.assertTrue("The list should contain " + account2,
Arrays.asList(sysAccounts).contains(account2.name));
String[] accounts = ProfileOAuth2TokenServiceDelegate.getAccounts();
Assert.assertEquals("There should be zero registered account", 0, accounts.length);
}
@Test
......@@ -152,20 +132,15 @@ public class ProfileOAuth2TokenServiceDelegateTest {
private void runTestOfGetOAuth2AccessTokenWithTimeout(String expectedToken) {
String scope = "oauth2:http://example.com/scope";
Account account = AccountManagerFacade.createAccountFromName("test@gmail.com");
// Add an account with given auth token for the given scope, already accepted auth popup.
AccountHolder accountHolder = AccountHolder.builder(account)
.hasBeenAccepted(scope, true)
.authToken(scope, expectedToken)
.build();
mAccountManagerTestRule.addAccount(accountHolder);
Account account = AccountUtils.createAccountFromName("test@gmail.com");
mAccountManagerFacade.addAccount(account);
GetAccessTokenCallbackForTest callback = new GetAccessTokenCallbackForTest();
ThreadUtils.runOnUiThreadBlocking(() -> {
mProfileOAuth2TokenServiceDelegate.getAccessToken(account, scope, callback);
});
Assert.assertEquals(expectedToken, callback.getToken());
Assert.assertEquals(
mAccountManagerFacade.getAccessToken(account, scope), callback.getToken());
}
}
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