Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1764)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java

Issue 1139643006: Rename chrome/android/javatests to javatests_shell. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
deleted file mode 100644
index 585f1d372bc76dde288b66f345200115a5f3eef0..0000000000000000000000000000000000000000
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
+++ /dev/null
@@ -1,294 +0,0 @@
-// Copyright 2013 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.browser.invalidation;
-
-import android.accounts.Account;
-import android.app.Activity;
-import android.content.Intent;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import org.chromium.base.ActivityState;
-import org.chromium.base.ApplicationState;
-import org.chromium.base.ApplicationStatus;
-import org.chromium.base.CollectionUtil;
-import org.chromium.base.test.util.Feature;
-import org.chromium.components.invalidation.InvalidationClientService;
-import org.chromium.sync.AndroidSyncSettings;
-import org.chromium.sync.internal_api.pub.base.ModelType;
-import org.chromium.sync.notifier.InvalidationIntentProtocol;
-import org.chromium.sync.notifier.InvalidationPreferences;
-import org.chromium.sync.signin.AccountManagerHelper;
-import org.chromium.sync.signin.ChromeSigninController;
-import org.chromium.sync.test.util.MockSyncContentResolverDelegate;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * Tests for the {@link InvalidationController}.
- */
-public class InvalidationControllerTest extends InstrumentationTestCase {
- private IntentSavingContext mContext;
- private InvalidationController mController;
-
- @Override
- protected void setUp() throws Exception {
- mContext = new IntentSavingContext(getInstrumentation().getTargetContext());
- mController = InvalidationController.get(mContext);
- // We don't want to use the system content resolver, so we override it.
- MockSyncContentResolverDelegate delegate = new MockSyncContentResolverDelegate();
- // Android master sync can safely always be on.
- delegate.setMasterSyncAutomatically(true);
- AndroidSyncSettings.overrideForTests(mContext, delegate);
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testStart() throws Exception {
- mController.start();
- assertEquals(1, mContext.getNumStartedIntents());
- Intent intent = mContext.getStartedIntent(0);
- validateIntentComponent(intent);
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testStop() throws Exception {
- mController.stop();
- assertEquals(1, mContext.getNumStartedIntents());
- Intent intent = mContext.getStartedIntent(0);
- validateIntentComponent(intent);
- assertEquals(1, intent.getExtras().size());
- assertTrue(intent.hasExtra(InvalidationIntentProtocol.EXTRA_STOP));
- assertTrue(intent.getBooleanExtra(InvalidationIntentProtocol.EXTRA_STOP, false));
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testResumingMainActivity() throws Exception {
- // Resuming main activity should trigger a start if sync is enabled.
- setupSync(true);
- mController.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES);
- assertEquals(1, mContext.getNumStartedIntents());
- Intent intent = mContext.getStartedIntent(0);
- validateIntentComponent(intent);
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testResumingMainActivityWithSyncDisabled() throws Exception {
- // Resuming main activity should NOT trigger a start if sync is disabled.
- setupSync(false);
- mController.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES);
- assertEquals(0, mContext.getNumStartedIntents());
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testPausingMainActivity() throws Exception {
- // Resuming main activity should trigger a stop if sync is enabled.
- setupSync(true);
- mController.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES);
- assertEquals(1, mContext.getNumStartedIntents());
- Intent intent = mContext.getStartedIntent(0);
- validateIntentComponent(intent);
- assertEquals(1, intent.getExtras().size());
- assertTrue(intent.hasExtra(InvalidationIntentProtocol.EXTRA_STOP));
- assertTrue(intent.getBooleanExtra(InvalidationIntentProtocol.EXTRA_STOP, false));
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testPausingMainActivityWithSyncDisabled() throws Exception {
- // Resuming main activity should NOT trigger a stop if sync is disabled.
- setupSync(false);
- mController.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES);
- assertEquals(0, mContext.getNumStartedIntents());
- }
-
- private void setupSync(boolean syncEnabled) {
- Account account = AccountManagerHelper.createAccountFromName("test@gmail.com");
- ChromeSigninController chromeSigninController = ChromeSigninController.get(mContext);
- chromeSigninController.setSignedInAccountName(account.name);
- AndroidSyncSettings androidSyncSettings = AndroidSyncSettings.get(mContext);
- if (syncEnabled) {
- androidSyncSettings.enableChromeSync();
- } else {
- androidSyncSettings.disableChromeSync();
- }
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testEnsureConstructorRegistersListener() throws Exception {
- final AtomicBoolean listenerCallbackCalled = new AtomicBoolean();
-
- // Create instance.
- new InvalidationController(mContext) {
- @Override
- public void onApplicationStateChange(int newState) {
- listenerCallbackCalled.set(true);
- }
- };
-
- // Ensure initial state is correct.
- assertFalse(listenerCallbackCalled.get());
-
- // Ensure we get a callback, which means we have registered for them.
- ApplicationStatus.onStateChangeForTesting(new Activity(), ActivityState.CREATED);
- assertTrue(listenerCallbackCalled.get());
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testRegisterForSpecificTypes() {
- InvalidationController controller = new InvalidationController(mContext);
- Account account = new Account("test@example.com", "bogus");
- controller.setRegisteredTypes(account, false,
- CollectionUtil.newHashSet(ModelType.BOOKMARK, ModelType.SESSION));
- assertEquals(1, mContext.getNumStartedIntents());
-
- // Validate destination.
- Intent intent = mContext.getStartedIntent(0);
- validateIntentComponent(intent);
- assertEquals(InvalidationIntentProtocol.ACTION_REGISTER, intent.getAction());
-
- // Validate account.
- Account intentAccount =
- intent.getParcelableExtra(InvalidationIntentProtocol.EXTRA_ACCOUNT);
- assertEquals(account, intentAccount);
-
- // Validate registered types.
- Set<String> expectedTypes = CollectionUtil.newHashSet(ModelType.BOOKMARK.name(),
- ModelType.SESSION.name());
- Set<String> actualTypes = new HashSet<String>();
- actualTypes.addAll(intent.getStringArrayListExtra(
- InvalidationIntentProtocol.EXTRA_REGISTERED_TYPES));
- assertEquals(expectedTypes, actualTypes);
- assertNull(InvalidationIntentProtocol.getRegisteredObjectIds(intent));
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testRegisterForAllTypes() {
- Account account = new Account("test@example.com", "bogus");
- mController.setRegisteredTypes(account, true,
- CollectionUtil.newHashSet(ModelType.BOOKMARK, ModelType.SESSION));
- assertEquals(1, mContext.getNumStartedIntents());
-
- // Validate destination.
- Intent intent = mContext.getStartedIntent(0);
- validateIntentComponent(intent);
- assertEquals(InvalidationIntentProtocol.ACTION_REGISTER, intent.getAction());
-
- // Validate account.
- Account intentAccount =
- intent.getParcelableExtra(InvalidationIntentProtocol.EXTRA_ACCOUNT);
- assertEquals(account, intentAccount);
-
- // Validate registered types.
- Set<String> expectedTypes = CollectionUtil.newHashSet(ModelType.ALL_TYPES_TYPE);
- Set<String> actualTypes = new HashSet<String>();
- actualTypes.addAll(intent.getStringArrayListExtra(
- InvalidationIntentProtocol.EXTRA_REGISTERED_TYPES));
- assertEquals(expectedTypes, actualTypes);
- assertNull(InvalidationIntentProtocol.getRegisteredObjectIds(intent));
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testRefreshShouldReadValuesFromDiskWithSpecificTypes() {
- // Store some preferences for ModelTypes and account. We are using the helper class
- // for this, so we don't have to deal with low-level details such as preference keys.
- InvalidationPreferences invalidationPreferences = new InvalidationPreferences(mContext);
- InvalidationPreferences.EditContext edit = invalidationPreferences.edit();
- Set<String> storedModelTypes = new HashSet<String>();
- storedModelTypes.add(ModelType.BOOKMARK.name());
- storedModelTypes.add(ModelType.TYPED_URL.name());
- Set<ModelType> refreshedTypes = new HashSet<ModelType>();
- refreshedTypes.add(ModelType.BOOKMARK);
- refreshedTypes.add(ModelType.TYPED_URL);
- invalidationPreferences.setSyncTypes(edit, storedModelTypes);
- Account storedAccount = AccountManagerHelper.createAccountFromName("test@gmail.com");
- invalidationPreferences.setAccount(edit, storedAccount);
- invalidationPreferences.commit(edit);
-
- // Ensure all calls to {@link InvalidationController#setRegisteredTypes} store values
- // we can inspect in the test.
- final AtomicReference<Account> resultAccount = new AtomicReference<Account>();
- final AtomicBoolean resultAllTypes = new AtomicBoolean();
- final AtomicReference<Set<ModelType>> resultTypes = new AtomicReference<Set<ModelType>>();
- InvalidationController controller = new InvalidationController(mContext) {
- @Override
- public void setRegisteredTypes(
- Account account, boolean allTypes, Set<ModelType> types) {
- resultAccount.set(account);
- resultAllTypes.set(allTypes);
- resultTypes.set(types);
- }
- };
-
- // Execute the test.
- controller.refreshRegisteredTypes(refreshedTypes);
-
- // Validate the values.
- assertEquals(storedAccount, resultAccount.get());
- assertEquals(false, resultAllTypes.get());
- assertEquals(ModelType.syncTypesToModelTypes(storedModelTypes), resultTypes.get());
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testRefreshShouldReadValuesFromDiskWithAllTypes() {
- // Store preferences for the ModelType.ALL_TYPES_TYPE and account. We
- // are using the helper class for this, so we don't have to deal with
- // low-level details such as preference keys.
- InvalidationPreferences invalidationPreferences = new InvalidationPreferences(mContext);
- InvalidationPreferences.EditContext edit = invalidationPreferences.edit();
- List<String> storedModelTypes = new ArrayList<String>();
- storedModelTypes.add(ModelType.ALL_TYPES_TYPE);
- invalidationPreferences.setSyncTypes(edit, storedModelTypes);
- Account storedAccount = AccountManagerHelper.createAccountFromName("test@gmail.com");
- invalidationPreferences.setAccount(edit, storedAccount);
- invalidationPreferences.commit(edit);
-
- // Ensure all calls to {@link InvalidationController#setRegisteredTypes} store values
- // we can inspect in the test.
- final AtomicReference<Account> resultAccount = new AtomicReference<Account>();
- final AtomicBoolean resultAllTypes = new AtomicBoolean();
- final AtomicReference<Set<ModelType>> resultTypes = new AtomicReference<Set<ModelType>>();
- InvalidationController controller = new InvalidationController(mContext) {
- @Override
- public void setRegisteredTypes(
- Account account, boolean allTypes, Set<ModelType> types) {
- resultAccount.set(account);
- resultAllTypes.set(allTypes);
- resultTypes.set(types);
- }
- };
-
- // Execute the test.
- controller.refreshRegisteredTypes(new HashSet<ModelType>());
-
- // Validate the values.
- assertEquals(storedAccount, resultAccount.get());
- assertEquals(true, resultAllTypes.get());
- }
-
- /**
- * Asserts that {@code intent} is destined for the correct component.
- */
- private static void validateIntentComponent(Intent intent) {
- assertNotNull(intent.getComponent());
- assertEquals(InvalidationClientService.class.getName(),
- intent.getComponent().getClassName());
- }
-
-}

Powered by Google App Engine
This is Rietveld 408576698