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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestBase.java

Issue 2440643002: Remove TabModelSelector's dependency on ChromeFullscreenManager. (Closed)
Patch Set: file move Created 4 years, 2 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/tabmodel/TabModelSelectorObserverTestBase.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestBase.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestBase.java
new file mode 100644
index 0000000000000000000000000000000000000000..32fdc7692ae2cff53796d0964d7c7f864c1a24ab
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestBase.java
@@ -0,0 +1,138 @@
+// Copyright 2016 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.tabmodel;
+
+import org.chromium.base.CommandLine;
+import org.chromium.base.ThreadUtils;
+import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
+import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
+import org.chromium.content.browser.test.NativeLibraryTestBase;
+import org.chromium.content_public.browser.LoadUrlParams;
+import org.chromium.ui.base.WindowAndroid;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Basis for testing tab model selector observers.
+ */
+public class TabModelSelectorObserverTestBase extends NativeLibraryTestBase {
+ protected TabModelSelectorBase mSelector;
+ protected TabModelSelectorTestTabModel mNormalTabModel;
+ protected TabModelSelectorTestTabModel mIncognitoTabModel;
+
+ protected WindowAndroid mWindowAndroid;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+
+ CommandLine.init(null);
+ loadNativeLibraryAndInitBrowserProcess();
+
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ initialize();
+ }
+ });
+ }
+
+ private void initialize() {
+ mWindowAndroid = new WindowAndroid(
+ getInstrumentation().getTargetContext().getApplicationContext());
+
+ mSelector = new TabModelSelectorBase() {
+ @Override
+ public Tab openNewTab(LoadUrlParams loadUrlParams, TabLaunchType type, Tab parent,
+ boolean incognito) {
+ return null;
+ }
+ };
+
+ TabModelOrderController orderController = new TabModelOrderController(mSelector);
+ TabContentManager tabContentManager =
+ new TabContentManager(getInstrumentation().getTargetContext(), null, false);
+ TabPersistencePolicy persistencePolicy = new TabbedModeTabPersistencePolicy(0, false);
+ TabPersistentStore tabPersistentStore = new TabPersistentStore(persistencePolicy, mSelector,
+ null, null);
+
+ TabModelDelegate delegate = new TabModelDelegate() {
+ @Override
+ public void selectModel(boolean incognito) {
+ mSelector.selectModel(incognito);
+ }
+
+ @Override
+ public void requestToShowTab(Tab tab, TabSelectionType type) {
+ }
+
+ @Override
+ public boolean isSessionRestoreInProgress() {
+ return false;
+ }
+
+ @Override
+ public boolean isInOverviewMode() {
+ return false;
+ }
+
+ @Override
+ public TabModel getModel(boolean incognito) {
+ return mSelector.getModel(incognito);
+ }
+
+ @Override
+ public TabModel getCurrentModel() {
+ return mSelector.getCurrentModel();
+ }
+
+ @Override
+ public boolean closeAllTabsRequest(boolean incognito) {
+ return false;
+ }
+ };
+ mNormalTabModel = new TabModelSelectorTestTabModel(
+ false, orderController, tabContentManager, tabPersistentStore, delegate);
+
+ mIncognitoTabModel = new TabModelSelectorTestTabModel(
+ true, orderController, tabContentManager, tabPersistentStore, delegate);
+
+ mSelector.initialize(false, mNormalTabModel, mIncognitoTabModel);
+ }
+
+ /**
+ * Test TabModel that exposes the needed capabilities for testing.
+ */
+ public static class TabModelSelectorTestTabModel extends TabModelImpl {
+ private Set<TabModelObserver> mObserverSet = new HashSet<>();
+
+ public TabModelSelectorTestTabModel(
+ boolean incognito, TabModelOrderController orderController,
+ TabContentManager tabContentManager, TabPersistentStore tabPersistentStore,
+ TabModelDelegate modelDelegate) {
+ super(incognito, null, null, null, orderController, tabContentManager,
+ tabPersistentStore, modelDelegate, false);
+ }
+
+ @Override
+ public void addObserver(TabModelObserver observer) {
+ super.addObserver(observer);
+ mObserverSet.add(observer);
+ }
+
+ @Override
+ public void removeObserver(TabModelObserver observer) {
+ super.removeObserver(observer);
+ mObserverSet.remove(observer);
+ }
+
+ public Set<TabModelObserver> getObservers() {
+ return mObserverSet;
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698