Index: chrome/android/javatests_shell/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java |
diff --git a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java b/chrome/android/javatests_shell/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java |
index c44b620e37b9b50aeadb929099ad14b226886a6c..683faa4823e3b63024bf7909069e4e44fb896cc0 100644 |
--- a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java |
+++ b/chrome/android/javatests_shell/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java |
@@ -4,6 +4,7 @@ |
package org.chromium.chrome.browser.search_engines; |
+import android.net.Uri; |
import android.test.suitebuilder.annotation.SmallTest; |
import org.chromium.base.ThreadUtils; |
@@ -15,6 +16,8 @@ import org.chromium.content.browser.test.util.Criteria; |
import org.chromium.content.browser.test.util.CriteriaHelper; |
import java.util.List; |
+import java.util.concurrent.Callable; |
+import java.util.concurrent.ExecutionException; |
import java.util.concurrent.atomic.AtomicBoolean; |
import java.util.concurrent.atomic.AtomicInteger; |
import java.util.concurrent.atomic.AtomicReference; |
@@ -24,6 +27,18 @@ import java.util.concurrent.atomic.AtomicReference; |
*/ |
public class TemplateUrlServiceTest extends ChromeShellTestBase { |
+ private static final String QUERY_PARAMETER = "q"; |
+ private static final String QUERY_VALUE = "cat"; |
+ |
+ private static final String ALTERNATIVE_PARAMETER = "ctxsl_alternate_term"; |
+ private static final String ALTERNATIVE_VALUE = "lion"; |
+ |
+ private static final String VERSION_PARAMETER = "ctxs"; |
+ private static final String VERSION_VALUE = "2"; |
+ |
+ private static final String PREFETCH_PARAMETER = "pf"; |
+ private static final String PREFETCH_VALUE = "c"; |
+ |
@Override |
public void setUp() throws Exception { |
super.setUp(); |
@@ -32,6 +47,48 @@ public class TemplateUrlServiceTest extends ChromeShellTestBase { |
} |
@SmallTest |
+ @Feature({"ContextualSearch"}) |
+ public void testUrlForContextualSearchQueryValid() |
+ throws InterruptedException, ExecutionException { |
+ waitForTemplateUrlServiceToLoad(); |
+ |
+ final AtomicBoolean loadedResult = new AtomicBoolean(); |
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
+ @Override |
+ public void run() { |
+ loadedResult.set(TemplateUrlService.getInstance().isLoaded()); |
+ } |
+ }); |
+ assertTrue(loadedResult.get()); |
+ |
+ validateQuery(QUERY_VALUE, ALTERNATIVE_VALUE, true); |
+ validateQuery(QUERY_VALUE, ALTERNATIVE_VALUE, false); |
+ validateQuery(QUERY_VALUE, null, true); |
+ validateQuery(QUERY_VALUE, null, false); |
+ } |
+ |
+ private void validateQuery(final String query, final String alternative, final boolean prefetch) |
+ throws ExecutionException { |
+ String result = ThreadUtils.runOnUiThreadBlocking(new Callable<String>() { |
+ @Override |
+ public String call() throws Exception { |
+ return TemplateUrlService.getInstance() |
+ .getUrlForContextualSearchQuery(query, alternative, prefetch); |
+ } |
+ }); |
+ assertNotNull(result); |
+ Uri uri = Uri.parse(result); |
+ assertEquals(query, uri.getQueryParameter(QUERY_PARAMETER)); |
+ assertEquals(alternative, uri.getQueryParameter(ALTERNATIVE_PARAMETER)); |
+ assertEquals(VERSION_VALUE, uri.getQueryParameter(VERSION_PARAMETER)); |
+ if (prefetch) { |
+ assertEquals(PREFETCH_VALUE, uri.getQueryParameter(PREFETCH_PARAMETER)); |
+ } else { |
+ assertNull(uri.getQueryParameter(PREFETCH_PARAMETER)); |
+ } |
+ } |
+ |
+ @SmallTest |
@Feature({"SearchEngines"}) |
public void testLoadUrlService() throws InterruptedException { |
final AtomicBoolean loadedResult = new AtomicBoolean(); |
@@ -61,7 +118,7 @@ public class TemplateUrlServiceTest extends ChromeShellTestBase { |
final TemplateUrlService templateUrlService = waitForTemplateUrlServiceToLoad(); |
final AtomicInteger searchEngineIndex = new AtomicInteger(); |
- // Ensure known state of default search index before running teest. |
+ // Ensure known state of default search index before running test. |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@Override |
public void run() { |