| Index: chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/UndoTabModelTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/UndoTabModelTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/UndoTabModelTest.java
|
| index d0a053f63cb4e6345f7779adf7ae1ba5469233fb..44a3988ea534f4a99b26dfa4193d800d52abfcdb 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/UndoTabModelTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/UndoTabModelTest.java
|
| @@ -6,23 +6,34 @@ package org.chromium.chrome.browser.tabmodel;
|
|
|
| import android.annotation.TargetApi;
|
| import android.os.Build;
|
| +import android.support.test.InstrumentationRegistry;
|
| import android.support.test.filters.MediumTest;
|
|
|
| +import org.junit.Assert;
|
| +import org.junit.Before;
|
| +import org.junit.Rule;
|
| +import org.junit.Test;
|
| +import org.junit.runner.RunWith;
|
| +
|
| import org.chromium.base.ApplicationStatus;
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.test.util.CallbackHelper;
|
| +import org.chromium.base.test.util.CommandLineFlags;
|
| import org.chromium.base.test.util.DisabledTest;
|
| import org.chromium.base.test.util.FlakyTest;
|
| import org.chromium.base.test.util.MinAndroidSdkLevel;
|
| import org.chromium.base.test.util.Restriction;
|
| import org.chromium.base.test.util.RetryOnFailure;
|
| import org.chromium.base.test.util.UrlUtils;
|
| +import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.ChromeTabbedActivity2;
|
| import org.chromium.chrome.browser.multiwindow.MultiWindowUtilsTest;
|
| 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.chrome.test.ChromeTabbedActivityTestBase;
|
| +import org.chromium.chrome.test.ChromeActivityTestRule;
|
| +import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
| +import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
|
| import org.chromium.chrome.test.util.ChromeRestriction;
|
| import org.chromium.chrome.test.util.ChromeTabUtils;
|
| import org.chromium.content.browser.test.util.Criteria;
|
| @@ -35,14 +46,22 @@ import java.util.concurrent.TimeoutException;
|
| /**
|
| * Tests undo and restoring of tabs in a {@link TabModel}.
|
| */
|
| -public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| +@RunWith(ChromeJUnit4ClassRunner.class)
|
| +@CommandLineFlags.Add({
|
| + ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| + ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG,
|
| +})
|
| +public class UndoTabModelTest {
|
| + @Rule
|
| + public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
|
| +
|
| private static final Tab[] EMPTY = new Tab[] { };
|
| private static final String TEST_URL_0 = UrlUtils.encodeHtmlDataUri("<html>test_url_0.</html>");
|
| private static final String TEST_URL_1 = UrlUtils.encodeHtmlDataUri("<html>test_url_1.</html>");
|
|
|
| - @Override
|
| - public void startMainActivity() throws InterruptedException {
|
| - startMainActivityOnBlankPage();
|
| + @Before
|
| + public void setUp() throws InterruptedException {
|
| + mActivityTestRule.startMainActivityOnBlankPage();
|
| }
|
|
|
| private void checkState(
|
| @@ -53,30 +72,32 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| // failures.
|
|
|
| // Check the selected tab.
|
| - assertEquals("Wrong selected tab", selectedTab, TabModelUtils.getCurrentTab(model));
|
| + Assert.assertEquals("Wrong selected tab", selectedTab, TabModelUtils.getCurrentTab(model));
|
|
|
| // Check the list of tabs.
|
| - assertEquals("Incorrect number of tabs", tabsList.length, model.getCount());
|
| + Assert.assertEquals("Incorrect number of tabs", tabsList.length, model.getCount());
|
| for (int i = 0; i < tabsList.length; i++) {
|
| - assertEquals("Unexpected tab at " + i, tabsList[i].getId(), model.getTabAt(i).getId());
|
| + Assert.assertEquals(
|
| + "Unexpected tab at " + i, tabsList[i].getId(), model.getTabAt(i).getId());
|
| }
|
|
|
| // Check the list of tabs we expect to be closing.
|
| for (int i = 0; i < closingTabs.length; i++) {
|
| int id = closingTabs[i].getId();
|
| - assertTrue("Tab " + id + " not in closing list", model.isClosurePending(id));
|
| + Assert.assertTrue("Tab " + id + " not in closing list", model.isClosurePending(id));
|
| }
|
|
|
| TabList fullModel = model.getComprehensiveModel();
|
|
|
| // Check the comprehensive selected tab.
|
| - assertEquals("Wrong selected tab", fullSelectedTab, TabModelUtils.getCurrentTab(fullModel));
|
| + Assert.assertEquals(
|
| + "Wrong selected tab", fullSelectedTab, TabModelUtils.getCurrentTab(fullModel));
|
|
|
| // Check the comprehensive list of tabs.
|
| - assertEquals("Incorrect number of tabs", fullTabsList.length, fullModel.getCount());
|
| + Assert.assertEquals("Incorrect number of tabs", fullTabsList.length, fullModel.getCount());
|
| for (int i = 0; i < fullModel.getCount(); i++) {
|
| int id = fullModel.getTabAt(i).getId();
|
| - assertEquals("Unexpected tab at " + i, fullTabsList[i].getId(), id);
|
| + Assert.assertEquals("Unexpected tab at " + i, fullTabsList[i].getId(), id);
|
| }
|
| }
|
|
|
| @@ -103,10 +124,10 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| final TabModel model, final Tab tab, final boolean undoable)
|
| throws InterruptedException {
|
| // Check preconditions.
|
| - assertFalse(tab.isClosing());
|
| - assertTrue(tab.isInitialized());
|
| - assertFalse(model.isClosurePending(tab.getId()));
|
| - assertNotNull(TabModelUtils.getTabById(model, tab.getId()));
|
| + Assert.assertFalse(tab.isClosing());
|
| + Assert.assertTrue(tab.isInitialized());
|
| + Assert.assertFalse(model.isClosurePending(tab.getId()));
|
| + Assert.assertNotNull(TabModelUtils.getTabById(model, tab.getId()));
|
|
|
| final CallbackHelper didReceivePendingClosureHelper = new CallbackHelper();
|
| model.addObserver(new EmptyTabModelObserver() {
|
| @@ -131,15 +152,15 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| try {
|
| didReceivePendingClosureHelper.waitForCallback(0);
|
| } catch (TimeoutException e) {
|
| - fail();
|
| + Assert.fail();
|
| }
|
| }
|
|
|
| // Check post conditions
|
| - assertEquals(didUndo, model.isClosurePending(tab.getId()));
|
| - assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
| - assertTrue(tab.isClosing());
|
| - assertEquals(didUndo, tab.isInitialized());
|
| + Assert.assertEquals(didUndo, model.isClosurePending(tab.getId()));
|
| + Assert.assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
| + Assert.assertTrue(tab.isClosing());
|
| + Assert.assertEquals(didUndo, tab.isInitialized());
|
| }
|
|
|
| private void closeAllTabsOnUiThread(final TabModel model) {
|
| @@ -163,10 +184,10 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| private void cancelTabClosureOnUiThread(final TabModel model, final Tab tab)
|
| throws InterruptedException {
|
| // Check preconditions.
|
| - assertTrue(tab.isClosing());
|
| - assertTrue(tab.isInitialized());
|
| - assertTrue(model.isClosurePending(tab.getId()));
|
| - assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
| + Assert.assertTrue(tab.isClosing());
|
| + Assert.assertTrue(tab.isInitialized());
|
| + Assert.assertTrue(model.isClosurePending(tab.getId()));
|
| + Assert.assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
|
|
| final CallbackHelper didReceiveClosureCancelledHelper = new CallbackHelper();
|
| model.addObserver(new EmptyTabModelObserver() {
|
| @@ -188,14 +209,14 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| try {
|
| didReceiveClosureCancelledHelper.waitForCallback(0);
|
| } catch (TimeoutException e) {
|
| - fail();
|
| + Assert.fail();
|
| }
|
|
|
| // Check post conditions.
|
| - assertFalse(model.isClosurePending(tab.getId()));
|
| - assertNotNull(TabModelUtils.getTabById(model, tab.getId()));
|
| - assertFalse(tab.isClosing());
|
| - assertTrue(tab.isInitialized());
|
| + Assert.assertFalse(model.isClosurePending(tab.getId()));
|
| + Assert.assertNotNull(TabModelUtils.getTabById(model, tab.getId()));
|
| + Assert.assertFalse(tab.isClosing());
|
| + Assert.assertTrue(tab.isInitialized());
|
| }
|
|
|
| private void cancelAllTabClosuresOnUiThread(final TabModel model, final Tab[] expectedToClose)
|
| @@ -204,10 +225,10 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
|
|
| for (int i = 0; i < expectedToClose.length; i++) {
|
| Tab tab = expectedToClose[i];
|
| - assertTrue(tab.isClosing());
|
| - assertTrue(tab.isInitialized());
|
| - assertTrue(model.isClosurePending(tab.getId()));
|
| - assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
| + Assert.assertTrue(tab.isClosing());
|
| + Assert.assertTrue(tab.isInitialized());
|
| + Assert.assertTrue(model.isClosurePending(tab.getId()));
|
| + Assert.assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
|
|
| // Make sure that this TabModel throws the right events.
|
| model.addObserver(new EmptyTabModelObserver() {
|
| @@ -231,25 +252,25 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| try {
|
| tabClosureUndoneHelper.waitForCallback(0, expectedToClose.length);
|
| } catch (TimeoutException e) {
|
| - fail();
|
| + Assert.fail();
|
| }
|
|
|
| for (int i = 0; i < expectedToClose.length; i++) {
|
| final Tab tab = expectedToClose[i];
|
| - assertFalse(model.isClosurePending(tab.getId()));
|
| - assertNotNull(TabModelUtils.getTabById(model, tab.getId()));
|
| - assertFalse(tab.isClosing());
|
| - assertTrue(tab.isInitialized());
|
| + Assert.assertFalse(model.isClosurePending(tab.getId()));
|
| + Assert.assertNotNull(TabModelUtils.getTabById(model, tab.getId()));
|
| + Assert.assertFalse(tab.isClosing());
|
| + Assert.assertTrue(tab.isInitialized());
|
| }
|
| }
|
|
|
| private void commitTabClosureOnUiThread(final TabModel model, final Tab tab)
|
| throws InterruptedException {
|
| // Check preconditions.
|
| - assertTrue(tab.isClosing());
|
| - assertTrue(tab.isInitialized());
|
| - assertTrue(model.isClosurePending(tab.getId()));
|
| - assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
| + Assert.assertTrue(tab.isClosing());
|
| + Assert.assertTrue(tab.isInitialized());
|
| + Assert.assertTrue(model.isClosurePending(tab.getId()));
|
| + Assert.assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
|
|
| final CallbackHelper didReceiveClosureCommittedHelper = new CallbackHelper();
|
| model.addObserver(new EmptyTabModelObserver() {
|
| @@ -271,14 +292,14 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| try {
|
| didReceiveClosureCommittedHelper.waitForCallback(0);
|
| } catch (TimeoutException e) {
|
| - fail();
|
| + Assert.fail();
|
| }
|
|
|
| // Check post conditions
|
| - assertFalse(model.isClosurePending(tab.getId()));
|
| - assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
| - assertTrue(tab.isClosing());
|
| - assertFalse(tab.isInitialized());
|
| + Assert.assertFalse(model.isClosurePending(tab.getId()));
|
| + Assert.assertNull(TabModelUtils.getTabById(model, tab.getId()));
|
| + Assert.assertTrue(tab.isClosing());
|
| + Assert.assertFalse(tab.isInitialized());
|
| }
|
|
|
| private void commitAllTabClosuresOnUiThread(final TabModel model, Tab[] expectedToClose)
|
| @@ -287,9 +308,9 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
|
|
| for (int i = 0; i < expectedToClose.length; i++) {
|
| Tab tab = expectedToClose[i];
|
| - assertTrue(tab.isClosing());
|
| - assertTrue(tab.isInitialized());
|
| - assertTrue(model.isClosurePending(tab.getId()));
|
| + Assert.assertTrue(tab.isClosing());
|
| + Assert.assertTrue(tab.isInitialized());
|
| + Assert.assertTrue(model.isClosurePending(tab.getId()));
|
|
|
| // Make sure that this TabModel throws the right events.
|
| model.addObserver(new EmptyTabModelObserver() {
|
| @@ -310,13 +331,13 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| try {
|
| tabClosureCommittedHelper.waitForCallback(0, expectedToClose.length);
|
| } catch (TimeoutException e) {
|
| - fail();
|
| + Assert.fail();
|
| }
|
| for (int i = 0; i < expectedToClose.length; i++) {
|
| final Tab tab = expectedToClose[i];
|
| - assertTrue(tab.isClosing());
|
| - assertFalse(tab.isInitialized());
|
| - assertFalse(model.isClosurePending(tab.getId()));
|
| + Assert.assertTrue(tab.isClosing());
|
| + Assert.assertFalse(tab.isInitialized());
|
| + Assert.assertFalse(model.isClosurePending(tab.getId()));
|
| }
|
| }
|
|
|
| @@ -331,7 +352,7 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| for (int i = 0; i < selector.getModels().size(); i++) {
|
| TabList tabs = selector.getModelAt(i).getComprehensiveModel();
|
| for (int j = 0; j < tabs.getCount(); j++) {
|
| - assertFalse(tabs.isClosurePending(tabs.getTabAt(j).getId()));
|
| + Assert.assertFalse(tabs.isClosurePending(tabs.getTabAt(j).getId()));
|
| }
|
| }
|
| }
|
| @@ -376,11 +397,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @RetryOnFailure
|
| public void testSingleTab() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
|
|
| Tab tab0 = model.getTabAt(0);
|
|
|
| @@ -431,8 +453,8 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| closeTabOnUiThread(model, tab0, false);
|
| fullList = EMPTY;
|
| checkState(model, EMPTY, null, EMPTY, fullList, null);
|
| - assertTrue(tab0.isClosing());
|
| - assertFalse(tab0.isInitialized());
|
| + Assert.assertTrue(tab0.isClosing());
|
| + Assert.assertFalse(tab0.isInitialized());
|
| }
|
|
|
| /**
|
| @@ -466,14 +488,15 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| // TODO(jbudorick): Replace with DisableIf when it supports filtering by device type.
|
| // Flaky on tablets, crbug.com/620014.
|
| @Restriction(ChromeRestriction.RESTRICTION_TYPE_PHONE)
|
| @RetryOnFailure
|
| public void testTwoTabs() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
|
|
| Tab tab0 = model.getTabAt(0);
|
| @@ -617,11 +640,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @RetryOnFailure
|
| public void testInOrderRestore() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -777,11 +801,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @Restriction(ChromeRestriction.RESTRICTION_TYPE_PHONE) // See crbug.com/633607
|
| public void testReverseOrderRestore() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -929,11 +954,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @RetryOnFailure
|
| public void testOutOfOrder1() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -1045,11 +1071,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @FlakyTest(message = "crbug.com/592969")
|
| public void testOutOfOrder2() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -1142,11 +1169,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @DisabledTest(message = "crbug.com/633607")
|
| public void testCloseAll() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -1184,14 +1212,14 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| // 7.
|
| commitAllTabClosuresOnUiThread(model, fullList);
|
| checkState(model, EMPTY, null, EMPTY, EMPTY, null);
|
| - assertTrue(tab0.isClosing());
|
| - assertTrue(tab1.isClosing());
|
| - assertTrue(tab2.isClosing());
|
| - assertTrue(tab3.isClosing());
|
| - assertFalse(tab0.isInitialized());
|
| - assertFalse(tab1.isInitialized());
|
| - assertFalse(tab2.isInitialized());
|
| - assertFalse(tab3.isInitialized());
|
| + Assert.assertTrue(tab0.isClosing());
|
| + Assert.assertTrue(tab1.isClosing());
|
| + Assert.assertTrue(tab2.isClosing());
|
| + Assert.assertTrue(tab3.isClosing());
|
| + Assert.assertFalse(tab0.isInitialized());
|
| + Assert.assertFalse(tab1.isInitialized());
|
| + Assert.assertFalse(tab2.isInitialized());
|
| + Assert.assertFalse(tab3.isInitialized());
|
|
|
| // 8.
|
| createTabOnUiThread(tabCreator);
|
| @@ -1202,8 +1230,8 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| // 9.
|
| closeAllTabsOnUiThread(model);
|
| checkState(model, EMPTY, null, fullList, fullList, tab0);
|
| - assertTrue(tab0.isClosing());
|
| - assertTrue(tab0.isInitialized());
|
| + Assert.assertTrue(tab0.isClosing());
|
| + Assert.assertTrue(tab0.isInitialized());
|
| }
|
|
|
| /**
|
| @@ -1217,10 +1245,11 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| public void testCloseTab() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -1247,10 +1276,10 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| closeTabOnUiThread(model, tab3, false);
|
| fullList = new Tab[] { tab0 };
|
| checkState(model, new Tab[] { tab0 }, tab0, EMPTY, fullList, tab0);
|
| - assertTrue(tab1.isClosing());
|
| - assertTrue(tab2.isClosing());
|
| - assertFalse(tab1.isInitialized());
|
| - assertFalse(tab2.isInitialized());
|
| + Assert.assertTrue(tab1.isClosing());
|
| + Assert.assertTrue(tab2.isClosing());
|
| + Assert.assertFalse(tab1.isInitialized());
|
| + Assert.assertFalse(tab2.isInitialized());
|
| }
|
|
|
| /**
|
| @@ -1263,11 +1292,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @RetryOnFailure
|
| public void testMoveTab() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -1294,10 +1324,10 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| moveTabOnUiThread(model, tab0, 2);
|
| fullList = new Tab[] { tab3, tab0 };
|
| checkState(model, new Tab[] { tab3, tab0 }, tab3, EMPTY, fullList, tab3);
|
| - assertTrue(tab1.isClosing());
|
| - assertTrue(tab2.isClosing());
|
| - assertFalse(tab1.isInitialized());
|
| - assertFalse(tab1.isInitialized());
|
| + Assert.assertTrue(tab1.isClosing());
|
| + Assert.assertTrue(tab2.isClosing());
|
| + Assert.assertFalse(tab1.isInitialized());
|
| + Assert.assertFalse(tab1.isInitialized());
|
| }
|
|
|
| /**
|
| @@ -1316,10 +1346,11 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| //@MediumTest
|
| //@Restriction(ChromeRestriction.RESTRICTION_TYPE_PHONE) // See crbug.com/633607
|
| // Disabled due to flakiness on linux_android_rel_ng (crbug.com/661429)
|
| + @Test
|
| @DisabledTest
|
| public void testAddTab() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -1347,10 +1378,10 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| Tab tab4 = model.getTabAt(2);
|
| fullList = new Tab[] { tab0, tab3, tab4 };
|
| checkState(model, new Tab[] { tab0, tab3, tab4 }, tab4, EMPTY, fullList, tab4);
|
| - assertTrue(tab1.isClosing());
|
| - assertTrue(tab2.isClosing());
|
| - assertFalse(tab1.isInitialized());
|
| - assertFalse(tab2.isInitialized());
|
| + Assert.assertTrue(tab1.isClosing());
|
| + Assert.assertTrue(tab2.isClosing());
|
| + Assert.assertFalse(tab1.isInitialized());
|
| + Assert.assertFalse(tab2.isInitialized());
|
|
|
| // 5.
|
| closeTabOnUiThread(model, tab0, true);
|
| @@ -1371,12 +1402,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| Tab tab5 = model.getTabAt(0);
|
| fullList = new Tab[] { tab5 };
|
| checkState(model, new Tab[] { tab5 }, tab5, EMPTY, fullList, tab5);
|
| - assertTrue(tab0.isClosing());
|
| - assertTrue(tab3.isClosing());
|
| - assertTrue(tab4.isClosing());
|
| - assertFalse(tab0.isInitialized());
|
| - assertFalse(tab3.isInitialized());
|
| - assertFalse(tab4.isInitialized());
|
| + Assert.assertTrue(tab0.isClosing());
|
| + Assert.assertTrue(tab3.isClosing());
|
| + Assert.assertTrue(tab4.isClosing());
|
| + Assert.assertFalse(tab0.isInitialized());
|
| + Assert.assertFalse(tab3.isInitialized());
|
| + Assert.assertFalse(tab4.isInitialized());
|
| }
|
|
|
| /**
|
| @@ -1388,11 +1419,12 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| *
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @RetryOnFailure
|
| public void testUndoNotSupported() throws InterruptedException {
|
| - TabModel model = getActivity().getTabModelSelector().getModel(true);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(true);
|
| + TabModel model = mActivityTestRule.getActivity().getTabModelSelector().getModel(true);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(true);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| createTabOnUiThread(tabCreator);
|
| @@ -1407,24 +1439,24 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
|
|
| // 1.
|
| checkState(model, new Tab[] { tab0, tab1, tab2, tab3 }, tab3, EMPTY, fullList, tab3);
|
| - assertFalse(model.supportsPendingClosures());
|
| + Assert.assertFalse(model.supportsPendingClosures());
|
|
|
| // 2.
|
| closeTabOnUiThread(model, tab1, true);
|
| fullList = new Tab[] { tab0, tab2, tab3 };
|
| checkState(model, new Tab[] { tab0, tab2, tab3 }, tab3, EMPTY, fullList, tab3);
|
| - assertTrue(tab1.isClosing());
|
| - assertFalse(tab1.isInitialized());
|
| + Assert.assertTrue(tab1.isClosing());
|
| + Assert.assertFalse(tab1.isInitialized());
|
|
|
| // 3.
|
| closeAllTabsOnUiThread(model);
|
| checkState(model, EMPTY, null, EMPTY, EMPTY, null);
|
| - assertTrue(tab0.isClosing());
|
| - assertTrue(tab2.isClosing());
|
| - assertTrue(tab3.isClosing());
|
| - assertFalse(tab0.isInitialized());
|
| - assertFalse(tab2.isInitialized());
|
| - assertFalse(tab3.isInitialized());
|
| + Assert.assertTrue(tab0.isClosing());
|
| + Assert.assertTrue(tab2.isClosing());
|
| + Assert.assertTrue(tab3.isClosing());
|
| + Assert.assertFalse(tab0.isInitialized());
|
| + Assert.assertFalse(tab2.isInitialized());
|
| + Assert.assertFalse(tab3.isInitialized());
|
| }
|
|
|
| /**
|
| @@ -1434,12 +1466,13 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| * 2. CloseTab(0, allow undo) [ 1s ] [ 0 ] [ 0 1s ]
|
| * 3. SaveState [ 1s ] - [ 1s ]
|
| */
|
| + @Test
|
| @MediumTest
|
| @Restriction(ChromeRestriction.RESTRICTION_TYPE_PHONE) // See crbug.com/633607
|
| public void testSaveStateCommitsUndos() throws InterruptedException {
|
| - TabModelSelector selector = getActivity().getTabModelSelector();
|
| + TabModelSelector selector = mActivityTestRule.getActivity().getTabModelSelector();
|
| TabModel model = selector.getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
| createTabOnUiThread(tabCreator);
|
|
|
| Tab tab0 = model.getTabAt(0);
|
| @@ -1458,20 +1491,21 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| saveStateOnUiThread(selector);
|
| fullList = new Tab[] { tab1 };
|
| checkState(model, new Tab[] { tab1 }, tab1, EMPTY, fullList, tab1);
|
| - assertTrue(tab0.isClosing());
|
| - assertFalse(tab0.isInitialized());
|
| + Assert.assertTrue(tab0.isClosing());
|
| + Assert.assertFalse(tab0.isInitialized());
|
| }
|
|
|
| /**
|
| * Test opening recently closed tabs using the rewound list in Java.
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @RetryOnFailure
|
| public void testOpenRecentlyClosedTab() throws InterruptedException {
|
| - TabModelSelector selector = getActivity().getTabModelSelector();
|
| + TabModelSelector selector = mActivityTestRule.getActivity().getTabModelSelector();
|
| TabModel model = selector.getModel(false);
|
| - ChromeTabCreator tabCreator = getActivity().getTabCreator(false);
|
| + ChromeTabCreator tabCreator = mActivityTestRule.getActivity().getTabCreator(false);
|
|
|
| createTabOnUiThread(tabCreator);
|
|
|
| @@ -1491,20 +1525,22 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| * Test opening recently closed tab using native tab restore service.
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| public void testOpenRecentlyClosedTabNative() throws InterruptedException {
|
| - final TabModelSelector selector = getActivity().getTabModelSelector();
|
| + final TabModelSelector selector = mActivityTestRule.getActivity().getTabModelSelector();
|
| final TabModel model = selector.getModel(false);
|
|
|
| // Create new tab and wait until it's loaded.
|
| // Native can only successfully recover the tab after a page load has finished and
|
| // it has navigation history.
|
| - ChromeTabUtils.fullyLoadUrlInNewTab(getInstrumentation(), getActivity(), TEST_URL_0, false);
|
| + ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(),
|
| + mActivityTestRule.getActivity(), TEST_URL_0, false);
|
|
|
| // Close the tab, and commit pending closure.
|
| - assertEquals(model.getCount(), 2);
|
| + Assert.assertEquals(model.getCount(), 2);
|
| closeTabOnUiThread(model, model.getTabAt(1), false);
|
| - assertEquals(1, model.getCount());
|
| + Assert.assertEquals(1, model.getCount());
|
| Tab tab0 = model.getTabAt(0);
|
| Tab[] tabs = new Tab[]{tab0};
|
| checkState(model, tabs, tab0, EMPTY, tabs, tab0);
|
| @@ -1512,11 +1548,11 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| // Recover the page.
|
| openMostRecentlyClosedTabOnUiThread(selector);
|
|
|
| - assertEquals(2, model.getCount());
|
| + Assert.assertEquals(2, model.getCount());
|
| tab0 = model.getTabAt(0);
|
| Tab tab1 = model.getTabAt(1);
|
| tabs = new Tab[]{tab0, tab1};
|
| - assertEquals(TEST_URL_0, tab1.getUrl());
|
| + Assert.assertEquals(TEST_URL_0, tab1.getUrl());
|
| checkState(model, tabs, tab0, EMPTY, tabs, tab0);
|
| }
|
|
|
| @@ -1532,12 +1568,14 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| * 7. Restore tab. | Tab restored in window 1.
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @MinAndroidSdkLevel(24)
|
| @TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
| public void testOpenRecentlyClosedTabMultiWindow() throws InterruptedException {
|
| final ChromeTabbedActivity2 secondActivity =
|
| - MultiWindowUtilsTest.createSecondChromeTabbedActivity(getActivity());
|
| + MultiWindowUtilsTest.createSecondChromeTabbedActivity(
|
| + mActivityTestRule.getActivity());
|
|
|
| // Wait for the second window to be fully initialized.
|
| CriteriaHelper.pollUiThread(new Criteria() {
|
| @@ -1547,34 +1585,40 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| }
|
| });
|
| // First window context.
|
| - final TabModelSelector firstSelector = getActivity().getTabModelSelector();
|
| + final TabModelSelector firstSelector =
|
| + mActivityTestRule.getActivity().getTabModelSelector();
|
| final TabModel firstModel = firstSelector.getModel(false);
|
|
|
| // Second window context.
|
| final TabModel secondModel = secondActivity.getTabModelSelector().getModel(false);
|
|
|
| // Create tabs.
|
| - ChromeTabUtils.fullyLoadUrlInNewTab(getInstrumentation(), getActivity(), TEST_URL_0, false);
|
| + ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(),
|
| + mActivityTestRule.getActivity(), TEST_URL_0, false);
|
| ChromeTabUtils.fullyLoadUrlInNewTab(
|
| - getInstrumentation(), secondActivity, TEST_URL_1, false);
|
| + InstrumentationRegistry.getInstrumentation(), secondActivity, TEST_URL_1, false);
|
|
|
| - assertEquals("Unexpected number of tabs in first window.", 2, firstModel.getCount());
|
| - assertEquals("Unexpected number of tabs in second window.", 2, secondModel.getCount());
|
| + Assert.assertEquals("Unexpected number of tabs in first window.", 2, firstModel.getCount());
|
| + Assert.assertEquals(
|
| + "Unexpected number of tabs in second window.", 2, secondModel.getCount());
|
|
|
| // Close one tab in the first window.
|
| closeTabOnUiThread(firstModel, firstModel.getTabAt(1), false);
|
| - assertEquals("Unexpected number of tabs in first window.", 1, firstModel.getCount());
|
| - assertEquals("Unexpected number of tabs in second window.", 2, secondModel.getCount());
|
| + Assert.assertEquals("Unexpected number of tabs in first window.", 1, firstModel.getCount());
|
| + Assert.assertEquals(
|
| + "Unexpected number of tabs in second window.", 2, secondModel.getCount());
|
|
|
| // Close one tab in the second window.
|
| closeTabOnUiThread(secondModel, secondModel.getTabAt(1), false);
|
| - assertEquals("Unexpected number of tabs in first window.", 1, firstModel.getCount());
|
| - assertEquals("Unexpected number of tabs in second window.", 1, secondModel.getCount());
|
| + Assert.assertEquals("Unexpected number of tabs in first window.", 1, firstModel.getCount());
|
| + Assert.assertEquals(
|
| + "Unexpected number of tabs in second window.", 1, secondModel.getCount());
|
|
|
| // Restore one tab.
|
| openMostRecentlyClosedTabOnUiThread(firstSelector);
|
| - assertEquals("Unexpected number of tabs in first window.", 1, firstModel.getCount());
|
| - assertEquals("Unexpected number of tabs in second window.", 2, secondModel.getCount());
|
| + Assert.assertEquals("Unexpected number of tabs in first window.", 1, firstModel.getCount());
|
| + Assert.assertEquals(
|
| + "Unexpected number of tabs in second window.", 2, secondModel.getCount());
|
|
|
| // Restore one more tab.
|
| openMostRecentlyClosedTabOnUiThread(firstSelector);
|
| @@ -1588,8 +1632,8 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| firstModelTab);
|
| checkState(secondModel, secondWindowTabs, secondModelTab, EMPTY, secondWindowTabs,
|
| secondModelTab);
|
| - assertEquals(TEST_URL_0, firstWindowTabs[1].getUrl());
|
| - assertEquals(TEST_URL_1, secondWindowTabs[1].getUrl());
|
| + Assert.assertEquals(TEST_URL_0, firstWindowTabs[1].getUrl());
|
| + Assert.assertEquals(TEST_URL_1, secondWindowTabs[1].getUrl());
|
|
|
| secondActivity.finishAndRemoveTask();
|
| }
|
| @@ -1604,12 +1648,14 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| * 5. Restore tab. | Tab restored in first window.
|
| * @throws InterruptedException
|
| */
|
| + @Test
|
| @MediumTest
|
| @MinAndroidSdkLevel(24)
|
| @TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
| public void testOpenRecentlyClosedTabMultiWindowFallback() throws InterruptedException {
|
| final ChromeTabbedActivity2 secondActivity =
|
| - MultiWindowUtilsTest.createSecondChromeTabbedActivity(getActivity());
|
| + MultiWindowUtilsTest.createSecondChromeTabbedActivity(
|
| + mActivityTestRule.getActivity());
|
| // Wait for the second window to be fully initialized.
|
| CriteriaHelper.pollUiThread(new Criteria() {
|
| @Override
|
| @@ -1619,7 +1665,8 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| });
|
|
|
| // First window context.
|
| - final TabModelSelector firstSelector = getActivity().getTabModelSelector();
|
| + final TabModelSelector firstSelector =
|
| + mActivityTestRule.getActivity().getTabModelSelector();
|
| final TabModel firstModel = firstSelector.getModel(false);
|
|
|
| // Second window context.
|
| @@ -1627,8 +1674,8 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
|
|
| // Create tab on second window.
|
| ChromeTabUtils.fullyLoadUrlInNewTab(
|
| - getInstrumentation(), secondActivity, TEST_URL_1, false);
|
| - assertEquals("Window 2 should have 2 tab.", 2, secondModel.getCount());
|
| + InstrumentationRegistry.getInstrumentation(), secondActivity, TEST_URL_1, false);
|
| + Assert.assertEquals("Window 2 should have 2 tab.", 2, secondModel.getCount());
|
|
|
| // Close tab in second window, wait until tab restore service history is created.
|
| CallbackHelper closedCallback = new CallbackHelper();
|
| @@ -1638,10 +1685,10 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| try {
|
| closedCallback.waitForCallback(0);
|
| } catch (TimeoutException | InterruptedException e) {
|
| - fail("Failed to close the tab on the second window.");
|
| + Assert.fail("Failed to close the tab on the second window.");
|
| }
|
|
|
| - assertEquals("Window 2 should have 1 tab.", 1, secondModel.getCount());
|
| + Assert.assertEquals("Window 2 should have 1 tab.", 1, secondModel.getCount());
|
|
|
| // Closed the second window. Must wait until it's totally closed.
|
| int numExpectedActivities = ApplicationStatus.getRunningActivities().size() - 1;
|
| @@ -1652,16 +1699,16 @@ public class UndoTabModelTest extends ChromeTabbedActivityTestBase {
|
| return ApplicationStatus.getRunningActivities().size();
|
| }
|
| }));
|
| - assertEquals("Window 1 should have 1 tab.", 1, firstModel.getCount());
|
| + Assert.assertEquals("Window 1 should have 1 tab.", 1, firstModel.getCount());
|
|
|
| // Restore closed tab from second window. It should be created in first window.
|
| openMostRecentlyClosedTabOnUiThread(firstSelector);
|
| - assertEquals("Closed tab in second window should be restored in the first window.", 2,
|
| - firstModel.getCount());
|
| + Assert.assertEquals("Closed tab in second window should be restored in the first window.",
|
| + 2, firstModel.getCount());
|
| Tab tab0 = firstModel.getTabAt(0);
|
| Tab tab1 = firstModel.getTabAt(1);
|
| Tab[] firstWindowTabs = new Tab[]{tab0, tab1};
|
| checkState(firstModel, firstWindowTabs, tab0, EMPTY, firstWindowTabs, tab0);
|
| - assertEquals(TEST_URL_1, tab1.getUrl());
|
| + Assert.assertEquals(TEST_URL_1, tab1.getUrl());
|
| }
|
| }
|
|
|