| Index: chrome/android/javatests/src/org/chromium/chrome/browser/widget/OverviewListLayoutTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/OverviewListLayoutTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/OverviewListLayoutTest.java
|
| index 993229eae83f1e56ded676ca0e88735995341974..af0c01e30f1f05b22987de3161bb24d455e344a2 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/OverviewListLayoutTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/OverviewListLayoutTest.java
|
| @@ -11,6 +11,7 @@ import android.test.suitebuilder.annotation.MediumTest;
|
| import android.view.View;
|
| import android.view.ViewGroup;
|
| import android.widget.ListView;
|
| +import android.widget.TextView;
|
|
|
| import org.chromium.base.CommandLine;
|
| import org.chromium.base.ThreadUtils;
|
| @@ -25,6 +26,7 @@ import org.chromium.chrome.browser.widget.accessibility.AccessibilityTabModelLis
|
| import org.chromium.chrome.test.ChromeTabbedActivityTestBase;
|
| import org.chromium.chrome.test.util.ChromeTabUtils;
|
| import org.chromium.chrome.test.util.MenuUtils;
|
| +import org.chromium.chrome.test.util.browser.TabLoadObserver;
|
| import org.chromium.content.browser.test.util.CallbackHelper;
|
| import org.chromium.content.browser.test.util.Criteria;
|
| import org.chromium.content.browser.test.util.CriteriaHelper;
|
| @@ -37,6 +39,12 @@ import java.util.concurrent.TimeoutException;
|
| * Tests accessibility UI.
|
| */
|
| public class OverviewListLayoutTest extends ChromeTabbedActivityTestBase {
|
| +
|
| + private static final String PAGE_1_HTML = "data:text/html;charset=utf-8,"
|
| + + "<html><head><title>Page%201<%2Ftitle><%2Fhead><body><%2Fbody><%2Fhtml>";
|
| + private static final String PAGE_2_HTML = "data:text/html;charset=utf-8,"
|
| + + "<html><head><title>Page%202<%2Ftitle><%2Fhead><body><%2Fbody><%2Fhtml>";
|
| +
|
| private static final int SWIPE_START_X_OFFSET = 10;
|
| private static final int SWIPE_START_Y_OFFSET = 10;
|
| private static final int SWIPE_END_X = 20;
|
| @@ -118,6 +126,25 @@ public class OverviewListLayoutTest extends ChromeTabbedActivityTestBase {
|
| return item;
|
| }
|
|
|
| + private CharSequence getTabTitleOfListItem(int index) {
|
| + View childView = getListItem(index);
|
| + TextView childTextView =
|
| + (TextView) childView.findViewById(org.chromium.chrome.R.id.tab_title);
|
| + return childTextView.getText();
|
| + }
|
| +
|
| + private void toggleTabSwitcher(final boolean expectVisible) throws Exception {
|
| + TestTouchUtils.performClickOnMainSync(
|
| + getInstrumentation(), getActivity().findViewById(R.id.tab_switcher_button));
|
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| + @Override
|
| + public boolean isSatisfied() {
|
| + boolean isVisible = (getContainer() != null && getContainer().getParent() != null);
|
| + return isVisible == expectVisible;
|
| + }
|
| + }));
|
| + }
|
| +
|
| @Restriction(RESTRICTION_TYPE_PHONE)
|
| @MediumTest
|
| @Feature({"Accessibility"})
|
| @@ -362,4 +389,32 @@ public class OverviewListLayoutTest extends ChromeTabbedActivityTestBase {
|
| assertTrue(
|
| "Wrong number of tabs", CriteriaHelper.pollForCriteria(new ChildCountCriteria(4)));
|
| }
|
| +
|
| + /**
|
| + * Tests that the TabObserver of the {@link AccessibilityTabModelListItem} is added back
|
| + * to the Tab after the View is hidden. This requires bringing the tab switcher back twice
|
| + * because the TabObserver is removed/added when the tab switcher's View is detached from/
|
| + * attached to the window.
|
| + */
|
| + @MediumTest
|
| + @Feature({"Accessibility"})
|
| + public void testObservesTitleChanges() throws Exception {
|
| + loadUrl(PAGE_1_HTML);
|
| +
|
| + // Bring the tab switcher forward and send it away twice.
|
| + toggleTabSwitcher(true);
|
| + assertEquals("Page 1", getTabTitleOfListItem(0));
|
| + toggleTabSwitcher(false);
|
| + toggleTabSwitcher(true);
|
| + toggleTabSwitcher(false);
|
| +
|
| + // Load another URL.
|
| + final TabLoadObserver observer =
|
| + new TabLoadObserver(getActivity().getActivityTab(), PAGE_2_HTML);
|
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria(observer));
|
| +
|
| + // Bring the tab switcher forward and check the title.
|
| + toggleTabSwitcher(true);
|
| + assertEquals("Page 2", getTabTitleOfListItem(0));
|
| + }
|
| }
|
|
|