| Index: chrome/android/javatests/src/org/chromium/chrome/browser/TabTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/TabTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/TabTest.java
|
| index 512c639a4bf94d146ad0592542d5ad94bbe53589..22e8b3c2c09d9bf15de27d427c49b1335cb30468 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/TabTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/TabTest.java
|
| @@ -6,7 +6,9 @@ package org.chromium.chrome.browser;
|
|
|
| import android.test.suitebuilder.annotation.SmallTest;
|
|
|
| +import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.test.util.Feature;
|
| +import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
|
| import org.chromium.chrome.shell.ChromeShellTestBase;
|
| import org.chromium.content.browser.test.util.CallbackHelper;
|
|
|
| @@ -48,4 +50,51 @@ public class TabTest extends ChromeShellTestBase {
|
| mOnTitleUpdatedHelper.waitForCallback(currentCallCount);
|
| assertEquals("title does not update", newTitle, mTab.getTitle());
|
| }
|
| +
|
| + @SmallTest
|
| + @Feature({"Tab"})
|
| + public void testTabRestoredIfKilledWhileActivityStopped() {
|
| + launchChromeShellWithBlankPage();
|
| + final Tab tab = getActivity().getActiveTab();
|
| +
|
| + // Ensure the tab is showing before stopping the activity.
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + tab.show(TabSelectionType.FROM_NEW);
|
| + }
|
| + });
|
| +
|
| + assertFalse(tab.needsReload());
|
| + assertFalse(tab.isHidden());
|
| + assertFalse(tab.isShowingSadTab());
|
| +
|
| + // Stop the activity and simulate a killed renderer.
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + getInstrumentation().callActivityOnPause(getActivity());
|
| + getInstrumentation().callActivityOnStop(getActivity());
|
| + tab.simulateRendererKilledForTesting(false);
|
| + }
|
| + });
|
| +
|
| + assertTrue(tab.needsReload());
|
| + assertFalse(tab.isHidden());
|
| + assertFalse(tab.isShowingSadTab());
|
| +
|
| + // Resume the activity.
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + getInstrumentation().callActivityOnStart(getActivity());
|
| + getInstrumentation().callActivityOnResume(getActivity());
|
| + }
|
| + });
|
| +
|
| + // The tab should be restored and visible.
|
| + assertFalse(tab.isHidden());
|
| + assertFalse(tab.needsReload());
|
| + assertFalse(tab.isShowingSadTab());
|
| + }
|
| }
|
|
|