| Index: chrome/android/javatests/src/org/chromium/chrome/browser/translate/TranslateCompactInfoBarTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/translate/TranslateInfoBarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/translate/TranslateCompactInfoBarTest.java
|
| similarity index 55%
|
| copy from chrome/android/javatests/src/org/chromium/chrome/browser/translate/TranslateInfoBarTest.java
|
| copy to chrome/android/javatests/src/org/chromium/chrome/browser/translate/TranslateCompactInfoBarTest.java
|
| index 599c190b3871e5b4cb92e3f5810330424f520937..6c6e2cad7fb65cab00630499e19ff0d5760e0b4e 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/translate/TranslateInfoBarTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/translate/TranslateCompactInfoBarTest.java
|
| @@ -4,6 +4,7 @@
|
|
|
| package org.chromium.chrome.browser.translate;
|
|
|
| +import android.content.pm.ActivityInfo;
|
| import android.support.test.InstrumentationRegistry;
|
| import android.support.test.filters.MediumTest;
|
|
|
| @@ -15,18 +16,17 @@ import org.junit.Test;
|
| import org.junit.runner.RunWith;
|
|
|
| import org.chromium.base.test.util.CommandLineFlags;
|
| -import org.chromium.base.test.util.DisabledTest;
|
| import org.chromium.base.test.util.Feature;
|
| import org.chromium.base.test.util.Restriction;
|
| import org.chromium.chrome.browser.ChromeActivity;
|
| import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.infobar.InfoBar;
|
| import org.chromium.chrome.browser.infobar.InfoBarContainer;
|
| +import org.chromium.chrome.browser.infobar.TranslateCompactInfoBar;
|
| import org.chromium.chrome.test.ChromeActivityTestRule;
|
| import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
| import org.chromium.chrome.test.util.ChromeRestriction;
|
| import org.chromium.chrome.test.util.InfoBarTestAnimationListener;
|
| -import org.chromium.chrome.test.util.InfoBarUtil;
|
| import org.chromium.chrome.test.util.TranslateUtil;
|
| import org.chromium.net.test.EmbeddedTestServer;
|
|
|
| @@ -35,24 +35,17 @@ import java.util.concurrent.TimeoutException;
|
| /**
|
| * Tests for the translate infobar, assumes it runs on a system with language
|
| * preferences set to English.
|
| - *
|
| - * Note: these tests all currently fail because they depend on a newer version of Google Play
|
| - * Services than is installed on the test devices. See http://crbug.com/514449
|
| */
|
| @RunWith(ChromeJUnit4ClassRunner.class)
|
| @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG})
|
| -public class TranslateInfoBarTest {
|
| +public class TranslateCompactInfoBarTest {
|
| @Rule
|
| public ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
|
| new ChromeActivityTestRule<>(ChromeActivity.class);
|
|
|
| private static final String TRANSLATE_PAGE = "/chrome/test/data/translate/fr_test.html";
|
| private static final String ENABLE_COMPACT_UI_FEATURE = "enable-features=TranslateCompactUI";
|
| - private static final String DISABLE_COMPACT_UI_FEATURE = "disable-features=TranslateCompactUI";
|
| - private static final String NEVER_TRANSLATE_MESSAGE =
|
| - "Would you like Google Chrome to offer to translate French pages from this"
|
| - + " site next time?";
|
|
|
| private InfoBarContainer mInfoBarContainer;
|
| private InfoBarTestAnimationListener mListener;
|
| @@ -62,7 +55,7 @@ public class TranslateInfoBarTest {
|
| public void setUp() throws Exception {
|
| mActivityTestRule.startMainActivityOnBlankPage();
|
| mInfoBarContainer = mActivityTestRule.getActivity().getActivityTab().getInfoBarContainer();
|
| - mListener = new InfoBarTestAnimationListener();
|
| + mListener = new InfoBarTestAnimationListener();
|
| mInfoBarContainer.addAnimationListener(mListener);
|
| mTestServer = EmbeddedTestServer.createAndStartServer(
|
| InstrumentationRegistry.getInstrumentation().getContext());
|
| @@ -74,7 +67,7 @@ public class TranslateInfoBarTest {
|
| }
|
|
|
| /**
|
| - * Test the new translate compact UI.
|
| + * Test that the new translate compact UI appears and has at least 2 tabs.
|
| */
|
| @Test
|
| @MediumTest
|
| @@ -86,68 +79,60 @@ public class TranslateInfoBarTest {
|
| mListener.addInfoBarAnimationFinished("InfoBar not opened.");
|
| InfoBar infoBar = mInfoBarContainer.getInfoBarsForTesting().get(0);
|
| TranslateUtil.assertCompactTranslateInfoBar(infoBar);
|
| + TranslateUtil.assertHasAtLeastTwoLanguageTabs((TranslateCompactInfoBar) infoBar);
|
| }
|
|
|
| /**
|
| - * Test the translate language panel.
|
| + * Test the overflow menus of new translate compact UI.
|
| */
|
| @Test
|
| @MediumTest
|
| @Feature({"Browser", "Main"})
|
| @Restriction(ChromeRestriction.RESTRICTION_TYPE_GOOGLE_PLAY_SERVICES)
|
| - @CommandLineFlags.Add(DISABLE_COMPACT_UI_FEATURE)
|
| - public void testTranslateLanguagePanel() throws InterruptedException, TimeoutException {
|
| + @CommandLineFlags.Add(ENABLE_COMPACT_UI_FEATURE)
|
| + public void testTranslateCompactInfoBarOverflowMenus()
|
| + throws InterruptedException, TimeoutException {
|
| mActivityTestRule.loadUrl(mTestServer.getURL(TRANSLATE_PAGE));
|
| mListener.addInfoBarAnimationFinished("InfoBar not opened.");
|
| - InfoBar infoBar = mInfoBarContainer.getInfoBarsForTesting().get(0);
|
| - Assert.assertTrue(InfoBarUtil.hasPrimaryButton(infoBar));
|
| - Assert.assertTrue(InfoBarUtil.hasSecondaryButton(infoBar));
|
| - TranslateUtil.openLanguagePanel(InstrumentationRegistry.getInstrumentation(),
|
| - mActivityTestRule.getActivity(), infoBar);
|
| + TranslateCompactInfoBar infoBar =
|
| + (TranslateCompactInfoBar) mInfoBarContainer.getInfoBarsForTesting().get(0);
|
| + TranslateUtil.hasMenuButton(infoBar);
|
| +
|
| + // 1. Click on menu button and make sure overflow menu appears
|
| + TranslateUtil.clickMenuButtonAndAssertMenuShown(infoBar);
|
| +
|
| + // 2. Click on "More language" in the overflow menu and make sure language menu appears
|
| + TranslateUtil.clickMoreLanguageButtonAndAssertLanguageMenuShown(
|
| + InstrumentationRegistry.getInstrumentation(), infoBar);
|
| }
|
|
|
| /**
|
| - * Test the "never translate" panel.
|
| + * Tests that the overflow menu is dismissed when the orientation changes.
|
| */
|
| @Test
|
| @MediumTest
|
| @Feature({"Browser", "Main"})
|
| @Restriction(ChromeRestriction.RESTRICTION_TYPE_GOOGLE_PLAY_SERVICES)
|
| - @CommandLineFlags.Add(DISABLE_COMPACT_UI_FEATURE)
|
| - public void testTranslateNeverPanel() throws InterruptedException, TimeoutException {
|
| + @CommandLineFlags.Add(ENABLE_COMPACT_UI_FEATURE)
|
| + public void testTabMenuDismissedOnOrientationChange() throws Exception {
|
| mActivityTestRule.loadUrl(mTestServer.getURL(TRANSLATE_PAGE));
|
| mListener.addInfoBarAnimationFinished("InfoBar not opened.");
|
| - InfoBar infoBar = mInfoBarContainer.getInfoBarsForTesting().get(0);
|
| -
|
| - Assert.assertTrue(InfoBarUtil.clickCloseButton(infoBar));
|
| - mListener.removeInfoBarAnimationFinished("Infobar not removed.");
|
| -
|
| - // Reload the page so the infobar shows again
|
| - mActivityTestRule.loadUrl(mTestServer.getURL(TRANSLATE_PAGE));
|
| - mListener.addInfoBarAnimationFinished("InfoBar not opened");
|
| - infoBar = mInfoBarContainer.getInfoBarsForTesting().get(0);
|
| - Assert.assertTrue(InfoBarUtil.clickCloseButton(infoBar));
|
| - mListener.swapInfoBarAnimationFinished("InfoBar not swapped");
|
| -
|
| - TranslateUtil.assertInfoBarText(infoBar, NEVER_TRANSLATE_MESSAGE);
|
| - }
|
| -
|
| - /**
|
| - * Test infobar transitions.
|
| - *
|
| - * @MediumTest
|
| - * @Feature({"Browser", "Main"})
|
| - */
|
| - @Test
|
| - @DisabledTest(message = "crbug.com/514449")
|
| - public void testTranslateTransitions() throws InterruptedException, TimeoutException {
|
| - mActivityTestRule.loadUrl(mTestServer.getURL(TRANSLATE_PAGE));
|
| - mListener.addInfoBarAnimationFinished("InfoBar not Added");
|
| - InfoBar infoBar = mActivityTestRule.getInfoBars().get(0);
|
| - Assert.assertTrue(InfoBarUtil.hasPrimaryButton(infoBar));
|
| - Assert.assertTrue(InfoBarUtil.hasSecondaryButton(infoBar));
|
| - Assert.assertTrue(InfoBarUtil.clickPrimaryButton(infoBar));
|
| - mListener.swapInfoBarAnimationFinished("BEFORE -> TRANSLATING transition not Swapped.");
|
| - mListener.swapInfoBarAnimationFinished("TRANSLATING -> ERROR transition not Swapped.");
|
| + TranslateCompactInfoBar infoBar =
|
| + (TranslateCompactInfoBar) mInfoBarContainer.getInfoBarsForTesting().get(0);
|
| + TranslateUtil.hasMenuButton(infoBar);
|
| + TranslateUtil.clickMenuButtonAndAssertMenuShown(infoBar);
|
| +
|
| + // 1. Set orientation to portrait
|
| + mActivityTestRule.getActivity().setRequestedOrientation(
|
| + ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
| + InstrumentationRegistry.getInstrumentation().waitForIdleSync();
|
| +
|
| + // 2. Check if overflow menu is dismissed
|
| + Assert.assertFalse(infoBar.isShowingLanguageMenuForTesting());
|
| +
|
| + // 3. Reset orientation
|
| + mActivityTestRule.getActivity().setRequestedOrientation(
|
| + ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
| + InstrumentationRegistry.getInstrumentation().waitForIdleSync();
|
| }
|
| }
|
|
|