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 426a088cebd79862aae14c7f3b60fd7e1cad861b..3a5d3f10e7b1d8ffa5865d06b40aaae8039c1426 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 |
@@ -178,10 +178,11 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro |
private final boolean mDoPreventPreload; |
private final int mStartAdjust; |
private final int mEndAdjust; |
+ private final String mLanguage; |
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 language) { |
mIsNetworkUnavailable = isNetworkUnavailable; |
mResponseCode = responseCode; |
mSearchTerm = searchTerm; |
@@ -190,13 +191,14 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro |
mDoPreventPreload = doPreventPreload; |
mStartAdjust = startAdjust; |
mEndAdjust = endAdjudst; |
+ mLanguage = language; |
} |
@Override |
public void run() { |
- mFakeServer.handleSearchTermResolutionResponse( |
- mIsNetworkUnavailable, mResponseCode, mSearchTerm, mDisplayText, |
- mAlternateTerm, mDoPreventPreload, mStartAdjust, mEndAdjust); |
+ mFakeServer.handleSearchTermResolutionResponse(mIsNetworkUnavailable, mResponseCode, |
+ mSearchTerm, mDisplayText, mAlternateTerm, mDoPreventPreload, mStartAdjust, |
+ mEndAdjust, mLanguage); |
} |
} |
@@ -206,10 +208,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, ""); |
+ } |
+ |
+ /** |
+ * 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, String language) { |
if (mFakeServer.getSearchTermRequested() != null) { |
getInstrumentation().runOnMainSync( |
new FakeResponseOnMainThread(isNetworkUnavailable, responseCode, searchTerm, |
- displayText, alternateTerm, doPreventPreload, 0, 0)); |
+ displayText, alternateTerm, doPreventPreload, 0, 0, language)); |
} |
} |
@@ -1908,4 +1920,24 @@ public class ContextualSearchManagerTest extends ChromeActivityTestCaseBase<Chro |
}); |
assertEquals(0, mActivityMonitor.getHits()); |
} |
+ |
+ /** |
+ * Tests a simple Tap with language determination. |
+ */ |
+ @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, "de"); |
+ assertContainsParameters("Intelligence", "alternate-term"); |
+ waitForPanelToPeekAndAssert(); |
+ assertLoadedLowPriorityUrl(); |
+ // Make sure we tried to trigger tranlsate. |
+ mFakeServer.getLoadedUrl().contains(ContextualSearchRequest.TLITE_SOURCE_LANGUAGE_PARAM); |
+ } |
} |