Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java

Issue 1354763003: [Contextual Search] Trigger the translation one-box. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated comment about test infrastructure needing to be updated when shifting to new API. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
+ }
}

Powered by Google App Engine
This is Rietveld 408576698