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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/document/DocumentModeRecentlyClosedTest.java

Issue 1263573004: Move NTP related classes to ntp package. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: newt's nits Created 5 years, 5 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/document/DocumentModeRecentlyClosedTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/document/DocumentModeRecentlyClosedTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/document/DocumentModeRecentlyClosedTest.java
deleted file mode 100644
index 3e3cf729067bd0589593c69bd952045089388f11..0000000000000000000000000000000000000000
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/document/DocumentModeRecentlyClosedTest.java
+++ /dev/null
@@ -1,267 +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.document;
-
-import android.app.Activity;
-import android.os.Build;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import org.chromium.base.ApplicationStatus;
-import org.chromium.base.ThreadUtils;
-import org.chromium.base.test.util.MinAndroidSdkLevel;
-import org.chromium.chrome.browser.ChromeApplication;
-import org.chromium.chrome.browser.RecentlyClosedBridge.RecentlyClosedTab;
-import org.chromium.chrome.browser.ntp.CurrentlyOpenTab;
-import org.chromium.chrome.browser.ntp.DocumentRecentTabsManager;
-import org.chromium.chrome.browser.tabmodel.TestTabModelDirectory;
-import org.chromium.chrome.browser.tabmodel.document.ActivityDelegate;
-import org.chromium.chrome.browser.tabmodel.document.DocumentTabModel.Entry;
-import org.chromium.chrome.browser.tabmodel.document.DocumentTabModelSelector;
-import org.chromium.chrome.test.util.ActivityUtils;
-import org.chromium.chrome.test.util.ApplicationTestUtils;
-import org.chromium.chrome.test.util.DisableInTabbedMode;
-import org.chromium.content.browser.test.util.Criteria;
-import org.chromium.content.browser.test.util.CriteriaHelper;
-import org.chromium.ui.WindowOpenDisposition;
-
-import java.util.List;
-import java.util.concurrent.Callable;
-
-/**
- * Tests that the "Recently closed" list of Tabs in the "Recent Tabs" menu is updated properly.
- */
-@MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP)
-@DisableInTabbedMode
-public class DocumentModeRecentlyClosedTest extends DocumentModeTestBase {
-
- /** Used to report that a fake Task is sitting in Android's Overview menu. */
- private static class TestActivityDelegate extends ActivityDelegate {
- private Entry mExtraRegularTask;
-
- TestActivityDelegate() {
- super(DocumentActivity.class, IncognitoDocumentActivity.class);
- }
-
- @Override
- public List<Entry> getTasksFromRecents(boolean isIncognito) {
- List<Entry> entries = super.getTasksFromRecents(isIncognito);
- if (!isIncognito && mExtraRegularTask != null) {
- entries.add(mExtraRegularTask);
- }
- return entries;
- }
-
- @Override
- public void finishAndRemoveTask(boolean isIncognito, int tabId) {
- if (mExtraRegularTask != null && mExtraRegularTask.tabId == tabId) {
- mExtraRegularTask = null;
- } else {
- super.finishAndRemoveTask(isIncognito, tabId);
- }
- }
-
- @Override
- public boolean isTabAssociatedWithNonDestroyedActivity(boolean isIncognito, int tabId) {
- if (mExtraRegularTask != null && mExtraRegularTask.tabId == tabId) {
- return false;
- } else {
- return super.isTabAssociatedWithNonDestroyedActivity(isIncognito, tabId);
- }
- }
-
- }
-
- /**
- * Test that Tabs that disappear from the Overview menu (e.g. by a user swipe) are marked as
- * recently closed. This test relies on mocking out the ActivityDelegate because we have no
- * obvious way to simulate a user closing a Tab while Chrome is closed.
- */
- @MediumTest
- public void testMissingTasksBecomeRecentlyClosed() throws Exception {
- // Set up the DocumentTabModel so that it finds a task in Android's Recents that it doesn't
- // know about, which results in adding the Tab to the DocumentTabModel.
- TestActivityDelegate activityDelegate = new TestActivityDelegate();
- activityDelegate.mExtraRegularTask = new Entry(TestTabModelDirectory.V2_TEXTAREA.tabId);
- DocumentTabModelSelector.setActivityDelegateForTests(activityDelegate);
- mStorageDelegate.addEncodedTabState(TestTabModelDirectory.V2_TEXTAREA.tabId, false,
- TestTabModelDirectory.V2_TEXTAREA.encodedTabState);
-
- final DocumentTabModelSelector selector =
- ChromeApplication.getDocumentTabModelSelector();
- assertEquals("Wrong tab count", 1, selector.getTotalTabCount());
-
- // Start a DocumentActivity. Should have two tabs.
- int newActivityId = launchViaViewIntent(false, URL_1, "Page 1");
- assertEquals("Wrong tab count", 2, selector.getTotalTabCount());
-
- // Return to the Android Home screen.
- ApplicationTestUtils.fireHomeScreenIntent(mContext);
- assertEquals("Wrong tab count", 2, selector.getTotalTabCount());
-
- // Remove the fake task, then bring Chrome back to the foreground to make the
- // DocumentTabModel update.
- activityDelegate.mExtraRegularTask = null;
- ApplicationTestUtils.launchChrome(mContext);
- assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- Activity lastActivity = ApplicationStatus.getLastTrackedFocusedActivity();
- return lastActivity instanceof DocumentActivity;
- }
- }));
-
- // Wait until the DocumentTabModel updates and shows a single tab.
- assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return selector.getTotalTabCount() == 1;
- }
- }));
-
- // Check recently closed, make sure it shows one open and one closed tab.
- DocumentActivity activity =
- (DocumentActivity) ApplicationStatus.getLastTrackedFocusedActivity();
- final DocumentRecentTabsManager recentTabsManager = getRecentTabsManager(activity);
- assertEquals("Wrong open tab count", 1, recentTabsManager.getCurrentlyOpenTabs().size());
- assertEquals("Wrong tab stayed open",
- newActivityId, recentTabsManager.getCurrentlyOpenTabs().get(0).getTabId());
- assertEquals("Wrong closed tab count",
- 1, recentTabsManager.getRecentlyClosedTabs().size());
- }
-
- /** Test that the "Recently closed" list is updated properly via the TabModel. */
- @MediumTest
- public void testUpdateRecentlyClosedAfterTabModelClose() throws Exception {
- int[] tabIds = launchThreeTabs();
-
- // Open Recent Tabs directly instead of interacting with the dialog and check that there's
- // nothing listed under Recently closed.
- final DocumentTabModelSelector selector =
- ChromeApplication.getDocumentTabModelSelector();
- final DocumentActivity thirdActivity =
- (DocumentActivity) ApplicationStatus.getLastTrackedFocusedActivity();
- final DocumentRecentTabsManager recentTabsManager = getRecentTabsManager(thirdActivity);
- List<CurrentlyOpenTab> beforeOpenTabs = recentTabsManager.getCurrentlyOpenTabs();
- assertEquals("Open tabs are missing", 3, beforeOpenTabs.size());
- for (CurrentlyOpenTab openTab : beforeOpenTabs) {
- boolean isListed = false;
- for (int i = 0; i < tabIds.length; i++) {
- isListed |= openTab.getTabId() == tabIds[i];
- }
- assertTrue("Tab not marked as open: " + openTab.getTabId(), isListed);
- }
- assertEquals("Wrong closed tab count", 0,
- recentTabsManager.getRecentlyClosedTabs().size());
-
- // Close the first tab directly via the selector.
- int closedTabId = selector.getModel(false).getTabAt(0).getId();
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- selector.getModel(false).closeTabAt(0);
- }
- });
- assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return selector.getTotalTabCount() == 2;
- }
- }));
-
- // Check that the right things appear in Recent Tabs.
- List<CurrentlyOpenTab> afterOpenTabs = recentTabsManager.getCurrentlyOpenTabs();
- assertEquals("Open tabs are missing", 2, afterOpenTabs.size());
- for (CurrentlyOpenTab openTab : afterOpenTabs) {
- boolean isListed = false;
- for (int i = 0; i < tabIds.length; i++) {
- isListed |= openTab.getTabId() == tabIds[i];
- }
- assertTrue("Tab not marked as open: " + openTab.getTabId(), isListed);
- assertNotSame("Tab remained open", closedTabId, openTab.getTabId());
- }
-
- final List<RecentlyClosedTab> afterRecentlyClosed =
- recentTabsManager.getRecentlyClosedTabs();
- assertEquals("Wrong closed tab count", 1, afterRecentlyClosed.size());
- assertEquals("Wrong tab closed", "Page 1", afterRecentlyClosed.get(0).title);
-
- // Check that the recently closed Tab is reopened.
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- recentTabsManager.openRecentlyClosedTab(
- afterRecentlyClosed.get(0), WindowOpenDisposition.NEW_FOREGROUND_TAB);
- }
- };
- DocumentActivity relaunchedActivity = ActivityUtils.waitForActivity(
- getInstrumentation(), DocumentActivity.class, runnable);
- waitForFullLoad(relaunchedActivity, "Page 1");
- assertEquals("Wrong tab count", 3, selector.getTotalTabCount());
- }
-
- /**
- * Test that the "Recently closed" list is updated when Chrome is alive but backgrounded.
- */
- @MediumTest
- public void testUpdateRecentlyClosedWhenChromeInBackground() throws Exception {
- int[] tabIds = launchThreeTabs();
-
- // Open Recent Tabs directly instead of interacting with the dialog and check that there's
- // nothing listed under Recently closed.
- final DocumentActivity thirdActivity =
- (DocumentActivity) ApplicationStatus.getLastTrackedFocusedActivity();
- final DocumentRecentTabsManager beforeManager = getRecentTabsManager(thirdActivity);
- List<CurrentlyOpenTab> beforeOpenTabs = beforeManager.getCurrentlyOpenTabs();
- assertEquals("Open tabs are missing", 3, beforeOpenTabs.size());
- for (CurrentlyOpenTab openTab : beforeOpenTabs) {
- boolean isListed = false;
- for (int i = 0; i < tabIds.length; i++) {
- isListed |= openTab.getTabId() == tabIds[i];
- }
- assertTrue("Tab not marked as open: " + openTab.getTabId(), isListed);
- }
- assertEquals("Wrong closed tab count", 0, beforeManager.getRecentlyClosedTabs().size());
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- beforeManager.destroy();
- }
- });
-
- // Finish the first Task.
- final DocumentTabModelSelector selector =
- ChromeApplication.getDocumentTabModelSelector();
- assertEquals("Wrong tab count", 3, selector.getTotalTabCount());
- ActivityDelegate delegate =
- new ActivityDelegate(DocumentActivity.class, IncognitoDocumentActivity.class);
- delegate.finishAndRemoveTask(false, tabIds[0]);
- assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return selector.getTotalTabCount() == 2;
- }
- }));
-
- // Check that the Tab shows up under Recently closed.
- final DocumentRecentTabsManager recentTabsManager = getRecentTabsManager(thirdActivity);
- final List<RecentlyClosedTab> afterRecentlyClosed =
- recentTabsManager.getRecentlyClosedTabs();
- assertEquals("Wrong closed tab count", 1, afterRecentlyClosed.size());
- assertEquals("Wrong tab closed", "Page 1", afterRecentlyClosed.get(0).title);
- }
-
- /**
- * Returns a DocumentRecentTabsManager corresponding to the given DocumentActivity.
- */
- private DocumentRecentTabsManager getRecentTabsManager(final DocumentActivity activity)
- throws Exception {
- return ThreadUtils.runOnUiThreadBlocking(new Callable<DocumentRecentTabsManager>() {
- @Override
- public DocumentRecentTabsManager call() {
- return new DocumentRecentTabsManager(activity.getActivityTab(), activity, false);
- }
- });
- }
-}

Powered by Google App Engine
This is Rietveld 408576698