| Index: chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
|
| index 31a57f0d76c1a744bc4a7cbe79599a9c32a78569..7b26c59803ac8296387ba94042cb0848644efc10 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
|
| @@ -10,12 +10,14 @@ import android.os.AsyncTask;
|
| import android.test.suitebuilder.annotation.SmallTest;
|
| import android.util.SparseArray;
|
|
|
| +import org.chromium.base.ActivityState;
|
| import org.chromium.base.ContextUtils;
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.test.util.AdvancedMockContext;
|
| import org.chromium.base.test.util.CommandLineFlags;
|
| import org.chromium.base.test.util.Feature;
|
| import org.chromium.base.test.util.MinAndroidSdkLevel;
|
| +import org.chromium.chrome.browser.ChromeActivity;
|
| import org.chromium.chrome.browser.TabState;
|
| import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelper;
|
| import org.chromium.chrome.browser.snackbar.undo.UndoBarController;
|
| @@ -32,6 +34,7 @@ import org.chromium.content.browser.test.NativeLibraryTestBase;
|
| import org.chromium.content.browser.test.util.CallbackHelper;
|
| import org.chromium.content_public.browser.LoadUrlParams;
|
| import org.chromium.content_public.browser.WebContents;
|
| +import org.chromium.ui.base.WindowAndroid;
|
|
|
| import java.util.ArrayList;
|
| import java.util.List;
|
| @@ -239,6 +242,26 @@ public class TabPersistentStoreTest extends NativeLibraryTestBase {
|
| }
|
| }
|
|
|
| + private final ChromeActivity mFakeChromeActivity = new ChromeActivity() {
|
| + @Override
|
| + protected boolean handleBackPressed() {
|
| + return false;
|
| + }
|
| + };
|
| +
|
| + private final TabWindowManager.TabModelSelectorFactory mMockTabModelSelectorFactory =
|
| + new TabWindowManager.TabModelSelectorFactory() {
|
| + @Override
|
| + public TabModelSelector buildSelector(
|
| + ChromeActivity activity, WindowAndroid windowAndroid, int selectorIndex) {
|
| + try {
|
| + return new TestTabModelSelector(windowAndroid.getApplicationContext());
|
| + } catch (Exception e) {
|
| + throw new RuntimeException(e);
|
| + }
|
| + }
|
| + };
|
| +
|
| /** Class for mocking out the directory containing all of the TabState files. */
|
| private TestTabModelDirectory mMockDirectory;
|
| private AdvancedMockContext mAppContext;
|
| @@ -260,6 +283,13 @@ public class TabPersistentStoreTest extends NativeLibraryTestBase {
|
|
|
| @Override
|
| public void tearDown() throws Exception {
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + TabWindowManager.getInstance().onActivityStateChange(
|
| + mFakeChromeActivity, ActivityState.DESTROYED);
|
| + }
|
| + });
|
| mMockDirectory.tearDown();
|
| super.tearDown();
|
| }
|
| @@ -589,7 +619,20 @@ public class TabPersistentStoreTest extends NativeLibraryTestBase {
|
|
|
| private TestTabModelSelector createAndRestoreRealTabModelImpls(TabModelMetaDataInfo info)
|
| throws Exception {
|
| - TestTabModelSelector selector = new TestTabModelSelector(mAppContext);
|
| + TestTabModelSelector selector =
|
| + ThreadUtils.runOnUiThreadBlocking(new Callable<TestTabModelSelector>() {
|
| + @Override
|
| + public TestTabModelSelector call() {
|
| + TabWindowManager tabWindowManager = TabWindowManager.getInstance();
|
| + tabWindowManager.setTabModelSelectorFactory(mMockTabModelSelectorFactory);
|
| + // Clear any existing TestTabModelSelector (required when
|
| + // createAndRestoreRealTabModelImpls is called multiple times in one test).
|
| + tabWindowManager.onActivityStateChange(
|
| + mFakeChromeActivity, ActivityState.DESTROYED);
|
| + return (TestTabModelSelector) tabWindowManager.requestSelector(
|
| + mFakeChromeActivity, new WindowAndroid(mAppContext), 0);
|
| + }
|
| + });
|
|
|
| TabPersistentStore store = selector.mTabPersistentStore;
|
| MockTabPersistentStoreObserver mockObserver = selector.mTabPersistentStoreObserver;
|
|
|