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

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/invalidations/InvalidationControllerTest.java

Issue 1543003005: Fix path of InvalidationControllerTest.java, PassphraseTypeDialogFragmentTest.java (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « chrome/android/junit/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/junit/src/org/chromium/chrome/browser/invalidations/InvalidationControllerTest.java
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/invalidations/InvalidationControllerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/invalidations/InvalidationControllerTest.java
deleted file mode 100644
index 8d6b103347bd4c1c07f7fef9c6244e42e774a0c6..0000000000000000000000000000000000000000
--- a/chrome/android/junit/src/org/chromium/chrome/browser/invalidations/InvalidationControllerTest.java
+++ /dev/null
@@ -1,482 +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.browser.invalidation;
-
-import android.accounts.Account;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-
-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.chrome.browser.sync.ProfileSyncService;
-import org.chromium.components.invalidation.InvalidationClientService;
-import org.chromium.sync.AndroidSyncSettings;
-import org.chromium.sync.ModelType;
-import org.chromium.sync.ModelTypeHelper;
-import org.chromium.sync.notifier.InvalidationIntentProtocol;
-import org.chromium.sync.signin.ChromeSigninController;
-import org.chromium.sync.test.util.MockSyncContentResolverDelegate;
-import org.chromium.testing.local.CustomShadowAsyncTask;
-import org.chromium.testing.local.LocalRobolectricTestRunner;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowActivity;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-/**
- * Tests for the {@link InvalidationController}.
- */
-@RunWith(LocalRobolectricTestRunner.class)
-@Config(manifest = Config.NONE, shadows = {CustomShadowAsyncTask.class})
-public class InvalidationControllerTest {
- /**
- * Stubbed out ProfileSyncService with a setter to control return value of
- * {@link ProfileSyncService#getPreferredDataTypes()}
- */
- private static class ProfileSyncServiceStub extends ProfileSyncService {
- private Set<Integer> mPreferredDataTypes;
-
- public ProfileSyncServiceStub() {
- super();
- }
-
- public void setPreferredDataTypes(Set<Integer> types) {
- mPreferredDataTypes = types;
- }
-
- @Override
- protected void init() {
- // Skip native initialization.
- }
-
- @Override
- public Set<Integer> getPreferredDataTypes() {
- return mPreferredDataTypes;
- }
- }
-
- private enum IntentType { START, START_AND_REGISTER, STOP };
-
- private ShadowActivity mShadowActivity;
- private Context mContext;
- private InvalidationController mController;
-
- /**
- * The names of the preferred ModelTypes.
- */
- private Set<String> mAllTypes;
-
- /**
- * The names of the non-session preferred ModelTypes.
- */
- private Set<String> mNonSessionTypes;
-
- @Before
- public void setUp() throws Exception {
- Activity activity = Robolectric.buildActivity(Activity.class).setup().get();
- mShadowActivity = Robolectric.shadowOf(activity);
- mContext = activity;
-
- ModelTypeHelper.setTestDelegate(new ModelTypeHelper.TestDelegate() {
- public String toNotificationType(int modelType) {
- return Integer.toString(modelType);
- }
- });
-
- ProfileSyncServiceStub profileSyncServiceStub = new ProfileSyncServiceStub();
- ProfileSyncService.overrideForTests(profileSyncServiceStub);
- profileSyncServiceStub.setPreferredDataTypes(
- CollectionUtil.newHashSet(ModelType.BOOKMARKS, ModelType.SESSIONS));
- mAllTypes = CollectionUtil.newHashSet(
- ModelTypeHelper.toNotificationType(ModelType.BOOKMARKS),
- ModelTypeHelper.toNotificationType(ModelType.SESSIONS));
- mNonSessionTypes = CollectionUtil.newHashSet(ModelTypeHelper.toNotificationType(
- ModelType.BOOKMARKS));
-
- // 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);
-
- ChromeSigninController.get(mContext).setSignedInAccountName("test@example.com");
- AndroidSyncSettings.enableChromeSync(mContext);
- }
-
- /**
- * Verify the intent sent by InvalidationController#stop().
- */
- @Test
- @Feature({"Sync"})
- public void testStop() throws Exception {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.stop();
- Intent intent = getOnlyIntent();
- validateIntentComponent(intent);
- Assert.assertEquals(1, intent.getExtras().size());
- Assert.assertTrue(intent.hasExtra(InvalidationIntentProtocol.EXTRA_STOP));
- Assert.assertTrue(intent.getBooleanExtra(InvalidationIntentProtocol.EXTRA_STOP, false));
- }
-
- /**
- * Verify the intent sent by InvalidationController#ensureStartedAndUpdateRegisteredTypes().
- */
- @Test
- @Feature({"Sync"})
- public void testEnsureStartedAndUpdateRegisteredTypes() {
- InvalidationController controller = new InvalidationController(mContext, false, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Intent intent = getOnlyIntent();
-
- // Ensure GCM is initialized. This is a regression test for http://crbug.com/475299.
- Assert.assertTrue(controller.isGcmInitialized());
-
- // Validate destination.
- validateIntentComponent(intent);
- Assert.assertEquals(InvalidationIntentProtocol.ACTION_REGISTER, intent.getAction());
-
- // Validate account.
- Account intentAccount =
- intent.getParcelableExtra(InvalidationIntentProtocol.EXTRA_ACCOUNT);
- Assert.assertEquals("test@example.com", intentAccount.name);
-
- // Validate registered types.
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(intent));
- Assert.assertNull(InvalidationIntentProtocol.getRegisteredObjectIds(intent));
- }
-
- /**
- * Test that pausing and resuming Chrome's activities does not send any intents if sync is
- * disabled.
- */
- @Test
- @Feature({"Sync"})
- public void testPauseAndResumeMainActivityWithSyncDisabled() throws Exception {
- AndroidSyncSettings.disableChromeSync(mContext);
-
- InvalidationController controller = new InvalidationController(mContext, false, false);
- controller.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES);
- controller.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES);
- assertNoNewIntents();
- }
-
- /**
- * Test that ensureStartedAndUpdateRegisteredTypes() does not send any intents if
- * ProfileSyncService is null.
- */
- @Test
- @Feature({"Sync"})
- public void testNullProfileSyncService() throws Exception {
- ProfileSyncService.overrideForTests(null);
-
- InvalidationController controller = new InvalidationController(mContext, false, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- assertNoNewIntents();
- }
-
- /**
- * Test that creating an InvalidationController object registers an ApplicationStateListener.
- */
- @Test
- @Feature({"Sync"})
- public void testEnsureConstructorRegistersListener() throws Exception {
- final AtomicBoolean listenerCallbackCalled = new AtomicBoolean();
-
- // Create instance.
- new InvalidationController(mContext, true, false) {
- @Override
- public void onApplicationStateChange(int newState) {
- listenerCallbackCalled.set(true);
- }
- };
-
- // Ensure initial state is correct.
- Assert.assertFalse(listenerCallbackCalled.get());
-
- // Ensure we get a callback, which means we have registered for them.
- ApplicationStatus.onStateChangeForTesting(new Activity(), ActivityState.CREATED);
- Assert.assertTrue(listenerCallbackCalled.get());
- }
-
- /**
- * Test that the controller registers for session invalidations and stays registered when
- * disabling session invalidations is prohibited.
- */
- @Test
- @Feature({"Sync"})
- public void testCannotToggleSessionInvalidations() {
- InvalidationController controller = new InvalidationController(mContext, false, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- assertNoNewIntents();
-
- controller.onRecentTabsPageClosed();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- assertNoNewIntents();
- }
-
- /**********************************************************************************************
- * Tests for when session invalidations can be disabled.
- */
-
- /**
- * Test that an intent is sent to register for session invalidations after the RecentTabsPage is
- * opened.
- */
- @Test
- @Feature({"Sync"})
- public void testRecentTabsPageShown() {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageClosed();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- }
-
- /**
- * Test that if the InvalidationController is started while the RecentTabsPage is shown that
- * an intent is sent to register for session invalidations only once the InvalidationController
- * is started.
- */
- @Test
- @Feature({"Sync"})
- public void testStartWhileRecentTabsPageShown() {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- assertNoNewIntents();
-
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(IntentType.START_AND_REGISTER, getIntentType(getOnlyIntent()));
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageClosed();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- }
-
- /**
- * Test the handling for multiple open RecentTabsPages.
- */
- @Test
- @Feature({"Sync"})
- public void testMultipleRecentTabsPages() {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- assertNoNewIntents();
-
- controller.onRecentTabsPageClosed();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- assertNoNewIntents();
-
- controller.onRecentTabsPageClosed();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- }
-
- /**
- * Test the handling for when the RecentTabsPage is opened/closed quickly.
- */
- @Test
- @Feature({"Sync"})
- public void testOpenCloseRecentTabsPageQuickly() {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageOpened();
- controller.onRecentTabsPageClosed();
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageClosed();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageOpened();
- controller.onRecentTabsPageClosed();
- controller.onRecentTabsPageOpened();
- controller.onRecentTabsPageClosed();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- assertNoNewIntents();
- }
-
- /**
- * Test that if the InvalidationController is stopped prior to session sync invalidations being
- * disabled as a result of the RecentTabsPage being closed, that session sync invalidations are
- * disabled when the InvalidationController is restarted.
- */
- @Test
- @Feature({"Sync"})
- public void testDisableSessionInvalidationsOnStart() {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageClosed();
- controller.stop();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(IntentType.STOP, getIntentType(getOnlyIntent()));
-
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- }
-
- /**
- * Test that if the activity is paused prior to session sync invalidations being disabled as a
- * result of the RecentTabsPage being closed, that session sync invalidations are disabled when
- * the activity is resumed.
- */
- @Test
- @Feature({"Sync"})
- public void testDisableSessionInvalidationsOnResume() {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onRecentTabsPageClosed();
- controller.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES);
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(IntentType.STOP, getIntentType(getOnlyIntent()));
-
- controller.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES);
- Assert.assertEquals(IntentType.START, getIntentType(getOnlyIntent()));
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- }
-
- /**
- * Test that pausing all of Chrome's activities and resuming one of them keeps session
- * invalidations enabled if they were enabled prior to Chrome's activities getting paused.
- */
- @Test
- @Feature({"Sync"})
- public void testPauseAndResumeMainActivity() throws Exception {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(mAllTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES);
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(IntentType.STOP, getIntentType(getOnlyIntent()));
-
- // Resuming the activity should not send a START_AND_REGISTER intent.
- controller.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES);
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(IntentType.START, getIntentType(getOnlyIntent()));
- }
-
- /**
- * Test that opening the RecentTabsPage has no effect after the InvalidationController is
- * stopped.
- */
- @Test
- @Feature({"Sync"})
- public void testPauseAndResumeMainActivityAfterStop() throws Exception {
- InvalidationController controller = new InvalidationController(mContext, true, false);
- controller.ensureStartedAndUpdateRegisteredTypes();
- Assert.assertEquals(mNonSessionTypes, getRegisterIntentRegisterTypes(getOnlyIntent()));
-
- controller.stop();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- Assert.assertEquals(IntentType.STOP, getIntentType(getOnlyIntent()));
-
- controller.onRecentTabsPageOpened();
- Robolectric.runUiThreadTasksIncludingDelayedTasks();
- assertNoNewIntents();
- }
-
- /**
- * Asserts that {@code intent} is destined for the correct component.
- */
- private static void validateIntentComponent(Intent intent) {
- Assert.assertNotNull(intent.getComponent());
- Assert.assertEquals(
- InvalidationClientService.class.getName(), intent.getComponent().getClassName());
- }
-
- /**
- * Assert that there are no new intents.
- */
- private void assertNoNewIntents() {
- Assert.assertNull(mShadowActivity.getNextStartedService());
- }
-
- /**
- * Assert that there is only one new intent. Returns the intent.
- */
- private Intent getOnlyIntent() {
- Intent intent = mShadowActivity.getNextStartedService();
- Assert.assertNotNull(intent);
- Assert.assertNull(mShadowActivity.getNextStartedService());
- return intent;
- }
-
- /**
- * Returns the type of the intent.
- */
- private static IntentType getIntentType(Intent intent) {
- if (intent.hasExtra(InvalidationIntentProtocol.EXTRA_STOP)) {
- return IntentType.STOP;
- } else if (intent.hasExtra(InvalidationIntentProtocol.EXTRA_REGISTERED_TYPES)) {
- return IntentType.START_AND_REGISTER;
- } else {
- return IntentType.START;
- }
- }
-
- /**
- * Returns the names of the ModelTypes to be registered by the passed in START_AND_REGISTER
- * intent.
- */
- private static Set<String> getRegisterIntentRegisterTypes(Intent intent) {
- Set<String> registeredTypes = new HashSet<String>();
- registeredTypes.addAll(
- intent.getStringArrayListExtra(InvalidationIntentProtocol.EXTRA_REGISTERED_TYPES));
- return registeredTypes;
- }
-
-}
« no previous file with comments | « chrome/android/junit/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698