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()); |
+ } |
} |