| 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 0dc28a8b4e641cca8daac1279053c0d3de5e85af..3d6280211c86b03c3e0c98737fc94411ef8d16da 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
|
| @@ -189,10 +189,11 @@ 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;
|
| @@ -201,13 +202,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);
|
| }
|
| }
|
|
|
| @@ -218,20 +220,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));
|
| }
|
| }
|
|
|
| @@ -1952,7 +1954,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");
|
| }
|
|
|
| @@ -1995,4 +1997,43 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro
|
| waitForPanelToPeekAndAssert();
|
| assertFalse(mPanel.isPeekPromoVisible());
|
| }
|
| +
|
| + /**
|
| + * Tests that a simple Tap with language determination triggers translation.
|
| + */
|
| + @SmallTest
|
| + @Feature({"ContextualSearch"})
|
| + @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE)
|
| + public void testTapWithLanguage() throws InterruptedException, TimeoutException {
|
| + clickWordNode("intelligence");
|
| +
|
| + assertEquals("Intelligence", mFakeServer.getSearchTermRequested());
|
| + // Fake a German response. This will trigger the Contextual Search Manager to try
|
| + // to create a Search Uri that triggers Translate.
|
| + fakeResponse(
|
| + false, 200, "Intelligence", "display-text", "alternate-term", false, 0, 0, "de");
|
| + assertContainsParameters("Intelligence", "alternate-term");
|
| + waitForPanelToPeekAndAssert();
|
| + // Make sure we tried to trigger tranlsate.
|
| + 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)
|
| + public void testTapWithoutLanguage() throws InterruptedException, TimeoutException {
|
| + clickWordNode("intelligence");
|
| +
|
| + assertEquals("Intelligence", mFakeServer.getSearchTermRequested());
|
| + // Fake an English response. This should not trigger translation.
|
| + fakeResponse(
|
| + false, 200, "Intelligence", "display-text", "alternate-term", false, 0, 0, "en");
|
| + assertContainsParameters("Intelligence", "alternate-term");
|
| + waitForPanelToPeekAndAssert();
|
| + // Make sure we did not try to trigger tranlsate.
|
| + assertFalse(mManager.getRequest().isTranslationForced());
|
| + }
|
| }
|
|
|