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") { ...@@ -36,3 +36,21 @@ generate_jni("jni_headers") {
"java/src/org/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate.java", "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 = { ...@@ -14,10 +14,8 @@ specific_include_rules = {
"+components/signin/core/browser/android/java/src/org/chromium/components/signin/AccessTokenData.java", "+components/signin/core/browser/android/java/src/org/chromium/components/signin/AccessTokenData.java",
], ],
"ProfileOAuth2TokenServiceDelegateTest.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/AccountUtils.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/FakeAccountManagerFacade.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/AccessTokenData.java", "+components/signin/core/browser/android/java/src/org/chromium/components/signin/AccessTokenData.java",
], ],
} }
...@@ -5,26 +5,21 @@ ...@@ -5,26 +5,21 @@
package org.chromium.components.signin.identitymanager; package org.chromium.components.signin.identitymanager;
import android.accounts.Account; import android.accounts.Account;
import android.support.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import org.junit.After;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner; 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.base.test.util.Feature;
import org.chromium.components.signin.AccessTokenData; import org.chromium.components.signin.AccessTokenData;
import org.chromium.components.signin.AccountManagerFacade; import org.chromium.components.signin.AccountUtils;
import org.chromium.components.signin.AccountManagerFacadeProvider; import org.chromium.components.signin.test.util.FakeAccountManagerFacade;
import org.chromium.components.signin.test.util.AccountHolder;
import org.chromium.components.signin.test.util.AccountManagerTestRule;
import java.util.Arrays; import java.util.Arrays;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
...@@ -32,10 +27,9 @@ import java.util.concurrent.CountDownLatch; ...@@ -32,10 +27,9 @@ import java.util.concurrent.CountDownLatch;
/** Tests for ProfileOAuth2TokenServiceDelegate. */ /** Tests for ProfileOAuth2TokenServiceDelegate. */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(BaseJUnit4ClassRunner.class)
public class ProfileOAuth2TokenServiceDelegateTest { public class ProfileOAuth2TokenServiceDelegateTest {
private AdvancedMockContext mContext;
@Rule private FakeAccountManagerFacade mAccountManagerFacade;
public AccountManagerTestRule mAccountManagerTestRule = new AccountManagerTestRule();
private ProfileOAuth2TokenServiceDelegate mProfileOAuth2TokenServiceDelegate; private ProfileOAuth2TokenServiceDelegate mProfileOAuth2TokenServiceDelegate;
/** /**
...@@ -75,61 +69,47 @@ public class ProfileOAuth2TokenServiceDelegateTest { ...@@ -75,61 +69,47 @@ public class ProfileOAuth2TokenServiceDelegateTest {
@Before @Before
public void setUp() { public void setUp() {
mContext = new AdvancedMockContext(InstrumentationRegistry.getTargetContext()); mAccountManagerFacade = new FakeAccountManagerFacade(null);
mProfileOAuth2TokenServiceDelegate = new ProfileOAuth2TokenServiceDelegate( mProfileOAuth2TokenServiceDelegate = new ProfileOAuth2TokenServiceDelegate(
0 /*nativeProfileOAuth2TokenServiceDelegateDelegate*/, 0 /*nativeProfileOAuth2TokenServiceDelegateDelegate*/,
null /* AccountTrackerService */, AccountManagerFacadeProvider.get()); null /* AccountTrackerService */, mAccountManagerFacade);
}
@After
public void tearDown() {
AccountManagerFacadeProvider.resetAccountManagerFacadeForTests();
} }
@Test @Test
@SmallTest @SmallTest
@Feature({"Sync"}) @Feature({"Sync"})
public void testGetAccountsNoAccountsRegistered() { public void testGetAccountsNoAccountsRegistered() {
String[] accounts = ProfileOAuth2TokenServiceDelegate.getAccounts(); String[] sysAccounts = mProfileOAuth2TokenServiceDelegate.getSystemAccountNames();
Assert.assertEquals("There should be no accounts registered", 0, accounts.length); Assert.assertEquals("There should be no accounts registered", 0, sysAccounts.length);
} }
@Test @Test
@SmallTest @SmallTest
@Feature({"Sync"}) @Feature({"Sync"})
public void testGetAccountsOneAccountRegistered() { public void testGetAccountsOneAccountRegistered() {
Account account1 = AccountManagerFacade.createAccountFromName("foo@gmail.com"); Account account1 = AccountUtils.createAccountFromName("foo@gmail.com");
AccountHolder accountHolder1 = AccountHolder.builder(account1).build(); mAccountManagerFacade.addAccount(account1);
mAccountManagerTestRule.addAccount(accountHolder1);
String[] sysAccounts = mProfileOAuth2TokenServiceDelegate.getSystemAccountNames(); String[] sysAccounts = mProfileOAuth2TokenServiceDelegate.getSystemAccountNames();
Assert.assertEquals("There should be one registered account", 1, sysAccounts.length); Assert.assertEquals("There should be one registered account", 1, sysAccounts.length);
Assert.assertEquals("The account should be " + account1, account1.name, sysAccounts[0]); 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 @Test
@SmallTest @SmallTest
@Feature({"Sync"}) @Feature({"Sync"})
public void testGetAccountsTwoAccountsRegistered() { public void testGetAccountsTwoAccountsRegistered() {
Account account1 = AccountManagerFacade.createAccountFromName("foo@gmail.com"); Account account1 = AccountUtils.createAccountFromName("foo@gmail.com");
AccountHolder accountHolder1 = AccountHolder.builder(account1).build(); mAccountManagerFacade.addAccount(account1);
mAccountManagerTestRule.addAccount(accountHolder1); Account account2 = AccountUtils.createAccountFromName("bar@gmail.com");
Account account2 = AccountManagerFacade.createAccountFromName("bar@gmail.com"); mAccountManagerFacade.addAccount(account2);
AccountHolder accountHolder2 = AccountHolder.builder(account2).build();
mAccountManagerTestRule.addAccount(accountHolder2);
String[] sysAccounts = mProfileOAuth2TokenServiceDelegate.getSystemAccountNames(); 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, Assert.assertTrue("The list should contain " + account1,
Arrays.asList(sysAccounts).contains(account1.name)); Arrays.asList(sysAccounts).contains(account1.name));
Assert.assertTrue("The list should contain " + account2, Assert.assertTrue("The list should contain " + account2,
Arrays.asList(sysAccounts).contains(account2.name)); Arrays.asList(sysAccounts).contains(account2.name));
String[] accounts = ProfileOAuth2TokenServiceDelegate.getAccounts();
Assert.assertEquals("There should be zero registered account", 0, accounts.length);
} }
@Test @Test
...@@ -152,20 +132,15 @@ public class ProfileOAuth2TokenServiceDelegateTest { ...@@ -152,20 +132,15 @@ public class ProfileOAuth2TokenServiceDelegateTest {
private void runTestOfGetOAuth2AccessTokenWithTimeout(String expectedToken) { private void runTestOfGetOAuth2AccessTokenWithTimeout(String expectedToken) {
String scope = "oauth2:http://example.com/scope"; String scope = "oauth2:http://example.com/scope";
Account account = AccountManagerFacade.createAccountFromName("test@gmail.com"); Account account = AccountUtils.createAccountFromName("test@gmail.com");
mAccountManagerFacade.addAccount(account);
// 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);
GetAccessTokenCallbackForTest callback = new GetAccessTokenCallbackForTest(); GetAccessTokenCallbackForTest callback = new GetAccessTokenCallbackForTest();
ThreadUtils.runOnUiThreadBlocking(() -> { ThreadUtils.runOnUiThreadBlocking(() -> {
mProfileOAuth2TokenServiceDelegate.getAccessToken(account, scope, callback); 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