Index: chrome/test/android/javatests/src/org/chromium/chrome/test/util/ChromeSigninUtils.java |
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ChromeSigninUtils.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ChromeSigninUtils.java |
deleted file mode 100644 |
index f63b1765630eccf3df8091280e0780187df07ab8..0000000000000000000000000000000000000000 |
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ChromeSigninUtils.java |
+++ /dev/null |
@@ -1,229 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.test.util; |
- |
-import android.accounts.Account; |
-import android.accounts.AccountManager; |
-import android.accounts.AccountManagerCallback; |
-import android.accounts.AccountManagerFuture; |
-import android.accounts.AuthenticatorException; |
-import android.accounts.OperationCanceledException; |
-import android.content.Context; |
-import android.os.Bundle; |
-import android.test.InstrumentationTestCase; |
-import android.text.TextUtils; |
- |
-import org.chromium.sync.signin.ChromeSigninController; |
-import org.chromium.sync.test.util.AccountHolder; |
-import org.chromium.sync.test.util.MockAccountManager; |
- |
-import java.io.IOException; |
- |
-/** |
- * A tool used for running tests as signed in. |
- */ |
-public class ChromeSigninUtils { |
- /** Bundle tags */ |
- private static final String USERNAME = "username"; |
- private static final String PASSWORD = "password"; |
- private static final String ALLOW_SKIP = "allowSkip"; |
- |
- /** Information for Google OS account */ |
- private static final String GOOGLE_ACCOUNT_TYPE = "com.google"; |
- |
- private AccountManager mAccountManager; |
- private MockAccountManager mMockAccountManager; |
- private Context mContext; |
- private Context mTargetContext; |
- |
- /** |
- * The constructor for SigninUtils for a given test case. |
- * |
- * @param testCase the test case to perform signin operations with. |
- */ |
- public ChromeSigninUtils(InstrumentationTestCase testCase) { |
- mContext = testCase.getInstrumentation().getContext(); |
- mTargetContext = testCase.getInstrumentation().getTargetContext(); |
- mAccountManager = AccountManager.get(mContext); |
- mMockAccountManager = new MockAccountManager(mContext, mTargetContext); |
- } |
- |
- /** |
- * Adds an account to the app. |
- * |
- * @param username the username for the logged in account; must be a Google account. |
- */ |
- public void addAccountToApp(String username) { |
- if (TextUtils.isEmpty(username)) { |
- throw new IllegalArgumentException("ERROR: must specify account"); |
- } |
- |
- if (ChromeSigninController.get(mContext).isSignedIn()) { |
- ChromeSigninController.get(mContext).clearSignedInUser(); |
- } |
- ChromeSigninController.get(mContext).setSignedInAccountName(username); |
- } |
- |
- /** |
- * Adds a fake account to the OS. |
- */ |
- public void addFakeAccountToOs(String username, String password) { |
- if (TextUtils.isEmpty(username)) { |
- throw new IllegalArgumentException("ERROR: must specify account"); |
- } |
- |
- Account account = new Account(username, GOOGLE_ACCOUNT_TYPE); |
- mMockAccountManager = new MockAccountManager(mContext, mTargetContext, account); |
- AccountHolder accountHolder = new AccountHolder.Builder() |
- .account(account) |
- .password(password) |
- .build(); |
- mMockAccountManager.addAccountHolderExplicitly(accountHolder); |
- } |
- |
- /** |
- * Removes all fake accounts from the OS. |
- */ |
- public void removeAllFakeAccountsFromOs() { |
- for (Account acct : mMockAccountManager.getAccountsByType(GOOGLE_ACCOUNT_TYPE)) { |
- mMockAccountManager.removeAccountHolderExplicitly( |
- new AccountHolder.Builder().account(acct).build(), true); |
- } |
- } |
- |
- /** |
- * Checks if an existing fake account is on the OS. |
- * |
- * @param username the username of the account you want to check if signed in |
- * @return {@code true} if fake account is on OS, false otherwise. |
- */ |
- public boolean isExistingFakeAccountOnOs(String username) { |
- if (mMockAccountManager.getAccountsByType(GOOGLE_ACCOUNT_TYPE).length == 0) { |
- return false; |
- } |
- |
- for (Account acct : mMockAccountManager.getAccountsByType(GOOGLE_ACCOUNT_TYPE)) { |
- if (username.equals(acct.name)) { |
- return true; |
- } |
- } |
- return false; |
- } |
- |
- /** |
- * Adds a Google account to the OS. |
- * |
- * @param username the username for the logged in account; must be a Google account. |
- * @param password the password for the username specified |
- * @param googleAccountType the account type to log into (e.g. @gmail.com accounts use "mail") |
- */ |
- public void addGoogleAccountToOs(String username, String password, String googleAccountType) { |
- final Bundle options = new Bundle(); |
- options.putString(USERNAME, username); |
- options.putString(PASSWORD, password); |
- options.putBoolean(ALLOW_SKIP, true); |
- |
- AuthenticationCallback authCallback = new AuthenticationCallback(); |
- mAccountManager.addAccount(GOOGLE_ACCOUNT_TYPE, googleAccountType, null, options, null, |
- authCallback, null); |
- |
- Bundle authResult = authCallback.waitForAuthCompletion(); |
- |
- if (authResult.containsKey(AccountManager.KEY_ERROR_CODE)) { |
- throw new IllegalStateException(String.format("AddAccount failed. Reason: %s", |
- authResult.get(AccountManager.KEY_ERROR_MESSAGE))); |
- } |
- } |
- |
- /** |
- * Checks to see if an existing Google account is on OS. |
- * |
- * @param username the username of the account you want to check if signed in |
- * @return {@code true} if one or more Google accounts exists on OS, {@code false} otherwise |
- */ |
- public boolean isExistingGoogleAccountOnOs(String username) { |
- if (mAccountManager.getAccountsByType(GOOGLE_ACCOUNT_TYPE).length == 0) { |
- return false; |
- } |
- |
- for (Account acct : mAccountManager.getAccountsByType(GOOGLE_ACCOUNT_TYPE)) { |
- if (username.equals(acct.name)) { |
- return true; |
- } |
- } |
- return false; |
- } |
- |
- /** |
- * Removes all Google accounts from the OS. |
- */ |
- public void removeAllGoogleAccountsFromOs() { |
- for (Account acct : mAccountManager.getAccountsByType(GOOGLE_ACCOUNT_TYPE)) { |
- mAccountManager.removeAccount(acct, null, null); |
- } |
- } |
- |
- /** |
- * Helper class for adding Google accounts to OS. |
- * |
- * Usage: Use this as the callback parameter when using {@link addAccount} in |
- * {@link android.accounts.AccountManager}. |
- */ |
- private static class AuthenticationCallback implements AccountManagerCallback<Bundle> { |
- private final Object mAuthenticationCompletionLock = new Object(); |
- |
- /** Stores the result of account authentication. Null means not finished. */ |
- private Bundle mResultBundle = null; |
- |
- /** |
- * Block and wait for the authentication callback to complete. |
- * |
- * @return the {@link Bundle} result from the authentication. |
- */ |
- public Bundle waitForAuthCompletion() { |
- synchronized (mAuthenticationCompletionLock) { |
- while (mResultBundle == null) { |
- try { |
- mAuthenticationCompletionLock.wait(); |
- } catch (InterruptedException e) { |
- // ignore |
- } |
- } |
- return mResultBundle; |
- } |
- } |
- |
- public void run(AccountManagerFuture<Bundle> future) { |
- Bundle resultBundle; |
- try { |
- resultBundle = future.getResult(); |
- } catch (OperationCanceledException e) { |
- resultBundle = buildExceptionBundle(e); |
- } catch (IOException e) { |
- resultBundle = buildExceptionBundle(e); |
- } catch (AuthenticatorException e) { |
- resultBundle = buildExceptionBundle(e); |
- } |
- synchronized (mAuthenticationCompletionLock) { |
- mResultBundle = resultBundle; |
- mAuthenticationCompletionLock.notify(); |
- } |
- } |
- |
- /** |
- * Create a result bundle for a given exception. |
- * |
- * @param e the exception to be made into a {@link Bundle} |
- * @return the {@link Bundle} for the given exception e. |
- */ |
- private Bundle buildExceptionBundle(Exception e) { |
- Bundle bundle = new Bundle(); |
- bundle.putInt(AccountManager.KEY_ERROR_CODE, |
- AccountManager.ERROR_CODE_INVALID_RESPONSE); |
- bundle.putString(AccountManager.KEY_ERROR_MESSAGE, e.toString()); |
- return bundle; |
- } |
- } |
-} |