Commit eda6d4fc authored by aurimas's avatar aurimas Committed by Commit bot

Add a test for ContextualSearch Query URLs.

Adds a test that validates that TemplateUrlService returns
URLs with correct parameters.

BUG=None

Review URL: https://codereview.chromium.org/1156423006

Cr-Commit-Position: refs/heads/master@{#333179}
parent 59c321f2
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.search_engines; package org.chromium.chrome.browser.search_engines;
import android.net.Uri;
import android.test.suitebuilder.annotation.SmallTest; import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
...@@ -15,6 +16,8 @@ import org.chromium.content.browser.test.util.Criteria; ...@@ -15,6 +16,8 @@ import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper; import org.chromium.content.browser.test.util.CriteriaHelper;
import java.util.List; 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.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
...@@ -24,6 +27,18 @@ import java.util.concurrent.atomic.AtomicReference; ...@@ -24,6 +27,18 @@ import java.util.concurrent.atomic.AtomicReference;
*/ */
public class TemplateUrlServiceTest extends ChromeShellTestBase { 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 @Override
public void setUp() throws Exception { public void setUp() throws Exception {
super.setUp(); super.setUp();
...@@ -31,6 +46,48 @@ public class TemplateUrlServiceTest extends ChromeShellTestBase { ...@@ -31,6 +46,48 @@ public class TemplateUrlServiceTest extends ChromeShellTestBase {
startChromeBrowserProcessSync(getInstrumentation().getTargetContext()); startChromeBrowserProcessSync(getInstrumentation().getTargetContext());
} }
@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 @SmallTest
@Feature({"SearchEngines"}) @Feature({"SearchEngines"})
public void testLoadUrlService() throws InterruptedException { public void testLoadUrlService() throws InterruptedException {
...@@ -61,7 +118,7 @@ public class TemplateUrlServiceTest extends ChromeShellTestBase { ...@@ -61,7 +118,7 @@ public class TemplateUrlServiceTest extends ChromeShellTestBase {
final TemplateUrlService templateUrlService = waitForTemplateUrlServiceToLoad(); final TemplateUrlService templateUrlService = waitForTemplateUrlServiceToLoad();
final AtomicInteger searchEngineIndex = new AtomicInteger(); 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() { ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override @Override
public void run() { public void run() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment