| Index: chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java
|
| index 9fe767649a63a5accbcf424d9c390262917a2542..28985586bca9de7912131f06ca23ee35aadfdab0 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java
|
| @@ -268,10 +268,12 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro
|
| private final boolean mDoPreventPreload;
|
| private final int mStartAdjust;
|
| private final int mEndAdjust;
|
| + private final String mContextLanguage;
|
|
|
| public FakeResponseOnMainThread(boolean isNetworkUnavailable, int responseCode,
|
| String searchTerm, String displayText, String alternateTerm,
|
| - boolean doPreventPreload, int startAdjust, int endAdjudst) {
|
| + boolean doPreventPreload, int startAdjust, int endAdjudst,
|
| + String contextLanguage) {
|
| mIsNetworkUnavailable = isNetworkUnavailable;
|
| mResponseCode = responseCode;
|
| mSearchTerm = searchTerm;
|
| @@ -280,13 +282,14 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro
|
| mDoPreventPreload = doPreventPreload;
|
| mStartAdjust = startAdjust;
|
| mEndAdjust = endAdjudst;
|
| + mContextLanguage = contextLanguage;
|
| }
|
|
|
| @Override
|
| public void run() {
|
| - mFakeServer.handleSearchTermResolutionResponse(
|
| - mIsNetworkUnavailable, mResponseCode, mSearchTerm, mDisplayText,
|
| - mAlternateTerm, mDoPreventPreload, mStartAdjust, mEndAdjust);
|
| + mFakeServer.handleSearchTermResolutionResponse(mIsNetworkUnavailable, mResponseCode,
|
| + mSearchTerm, mDisplayText, mAlternateTerm, mDoPreventPreload, mStartAdjust,
|
| + mEndAdjust, mContextLanguage);
|
| }
|
| }
|
|
|
| @@ -297,20 +300,20 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro
|
| private void fakeResponse(boolean isNetworkUnavailable, int responseCode,
|
| String searchTerm, String displayText, String alternateTerm, boolean doPreventPreload) {
|
| fakeResponse(isNetworkUnavailable, responseCode, searchTerm, displayText, alternateTerm,
|
| - doPreventPreload, 0, 0);
|
| + doPreventPreload, 0, 0, "");
|
| }
|
|
|
| /**
|
| * Fakes a server response with the parameters given.
|
| * {@See ContextualSearchManager#handleSearchTermResolutionResponse}.
|
| */
|
| - private void fakeResponse(boolean isNetworkUnavailable, int responseCode,
|
| - String searchTerm, String displayText, String alternateTerm, boolean doPreventPreload,
|
| - int startAdjust, int endAdjust) {
|
| + private void fakeResponse(boolean isNetworkUnavailable, int responseCode, String searchTerm,
|
| + String displayText, String alternateTerm, boolean doPreventPreload, int startAdjust,
|
| + int endAdjust, String contextLanguage) {
|
| if (mFakeServer.getSearchTermRequested() != null) {
|
| - getInstrumentation().runOnMainSync(
|
| - new FakeResponseOnMainThread(isNetworkUnavailable, responseCode, searchTerm,
|
| - displayText, alternateTerm, doPreventPreload, startAdjust, endAdjust));
|
| + getInstrumentation().runOnMainSync(new FakeResponseOnMainThread(isNetworkUnavailable,
|
| + responseCode, searchTerm, displayText, alternateTerm, doPreventPreload,
|
| + startAdjust, endAdjust, contextLanguage));
|
| }
|
| }
|
|
|
| @@ -449,10 +452,18 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro
|
| */
|
| private void assertLoadedSearchTermMatches(String searchTerm) {
|
| boolean doesMatch = false;
|
| + String message = "but there was no loaded URL!";
|
| if (mFakeServer != null) {
|
| doesMatch = mFakeServer.getLoadedUrl().contains("q=" + searchTerm);
|
| + // TODO(donnd): remove the following line once the Translate API is updated!
|
| + // The current Translate API requires a change to the query parameter so
|
| + // checking it for the search term does not work. We plan to fix this very
|
| + // soon, and this workaround allows tests to work until then, but needs to be
|
| + // removed when we switch to the new API. See crbug.com/413717.
|
| + doesMatch = doesMatch || mFakeServer.getLoadedUrl().contains("tlitetxt=" + searchTerm);
|
| + message = "in URL: " + mFakeServer.getLoadedUrl();
|
| }
|
| - assertTrue(doesMatch);
|
| + assertTrue("Expected to find searchTerm " + searchTerm + ", " + message, doesMatch);
|
| }
|
|
|
| private void assertContainsParameters(String searchTerm, String alternateTerm) {
|
| @@ -2166,7 +2177,7 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro
|
| waitForPanelToPeekAndAssert();
|
|
|
| fakeResponse(false, 200, "Intelligence", "United States Intelligence", "alternate-term",
|
| - false, -14, 0);
|
| + false, -14, 0, "");
|
| waitForSelectionToBe("United States Intelligence");
|
| }
|
|
|
| @@ -2410,4 +2421,34 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro
|
| assertTrue(mFakeServer.hasRemovedUrl(url2));
|
| assertTrue(mFakeServer.hasRemovedUrl(url3));
|
| }
|
| +
|
| + /**
|
| + * Tests that a simple Tap with language determination triggers translation.
|
| + */
|
| + @SmallTest
|
| + @Feature({"ContextualSearch"})
|
| + @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
|
| + @CommandLineFlags.Add(ContextualSearchFieldTrial.TRANSLATION_ONEBOX_ENABLED + "=true")
|
| + public void testTapWithLanguage() throws InterruptedException, TimeoutException {
|
| + // Tapping a german word should trigger translation.
|
| + simulateTapSearch("german");
|
| +
|
| + // Make sure we tried to trigger translate.
|
| + assertTrue(mManager.getRequest().isTranslationForced());
|
| + }
|
| +
|
| + /**
|
| + * Tests that a simple Tap without language determination does not trigger translation.
|
| + */
|
| + @SmallTest
|
| + @Feature({"ContextualSearch"})
|
| + @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
|
| + @CommandLineFlags.Add(ContextualSearchFieldTrial.TRANSLATION_ONEBOX_ENABLED + "=true")
|
| + public void testTapWithoutLanguage() throws InterruptedException, TimeoutException {
|
| + // Tapping an English word should NOT trigger translation.
|
| + simulateTapSearch("search");
|
| +
|
| + // Make sure we did not try to trigger translate.
|
| + assertFalse(mManager.getRequest().isTranslationForced());
|
| + }
|
| }
|
|
|