| 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;
|
| + }
|
| + }
|
| +}
|
|
|