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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java

Issue 2844323003: 🔍 Add first run dialog for selecting search engine (Closed)
Patch Set: Rebase Created 3 years, 7 months 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/firstrun/FirstRunIntegrationTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java
index b8a85a0e518b4da10291badab48ec5638d76f3d3..19cd037d72258169da74496878d793d14b32f960 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java
@@ -15,6 +15,7 @@ import android.support.customtabs.CustomTabsIntent;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.MediumTest;
import android.support.test.filters.SmallTest;
+import android.view.ViewGroup;
import android.widget.Button;
import org.junit.After;
@@ -30,6 +31,9 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
+import org.chromium.chrome.browser.locale.LocaleManager;
+import org.chromium.chrome.browser.locale.LocaleManager.SearchEnginePromoType;
+import org.chromium.chrome.browser.search_engines.TemplateUrlService;
import org.chromium.chrome.browser.searchwidget.SearchActivity;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.MultiActivityTestRule;
@@ -48,6 +52,7 @@ public class FirstRunIntegrationTest {
private FirstRunActivityTestObserver mTestObserver = new FirstRunActivityTestObserver();
private Activity mActivity;
+ private String mSelectedEngine;
@Before
public void setUp() throws Exception {
@@ -231,7 +236,27 @@ public class FirstRunIntegrationTest {
@Test
@MediumTest
- public void testClickThroughFirstRun() throws Exception {
+ public void testDefaultSearchEngine_DontShow() throws Exception {
+ runSearchEnginePromptTest(LocaleManager.SEARCH_ENGINE_PROMO_DONT_SHOW);
+ }
+
+ @Test
+ @MediumTest
+ public void testDefaultSearchEngine_ShowExisting() throws Exception {
+ runSearchEnginePromptTest(LocaleManager.SEARCH_ENGINE_PROMO_SHOW_EXISTING);
+ }
+
+ private void runSearchEnginePromptTest(@SearchEnginePromoType final int searchPromoType)
+ throws Exception {
+ // Force the LocaleManager into a specific state.
+ LocaleManager mockManager = new LocaleManager() {
+ @Override
+ public int getSearchEnginePromoShowType() {
+ return searchPromoType;
+ }
+ };
+ LocaleManager.setInstanceForTest(mockManager);
+
final ActivityMonitor freMonitor =
new ActivityMonitor(FirstRunActivity.class.getName(), null, false);
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
@@ -260,10 +285,10 @@ public class FirstRunIntegrationTest {
// Accept the ToS.
if (freProperties.getBoolean(FirstRunActivity.SHOW_WELCOME_PAGE)) {
clickButton(mActivity, R.id.terms_accept, "Failed to accept ToS");
- mTestObserver.acceptTermsOfServiceCallback.waitForCallback(
- "Failed to accept the ToS", 0);
mTestObserver.jumpToPageCallback.waitForCallback(
"Failed to try moving to the next screen", 0);
+ mTestObserver.acceptTermsOfServiceCallback.waitForCallback(
+ "Failed to accept the ToS", 0);
}
// Acknowledge that Data Saver will be enabled.
@@ -274,6 +299,41 @@ public class FirstRunIntegrationTest {
"Failed to try moving to next screen", jumpCallCount);
}
+ // Select a default search engine.
+ if (searchPromoType == LocaleManager.SEARCH_ENGINE_PROMO_DONT_SHOW) {
+ Assert.assertFalse("Search engine page was shown.",
+ freProperties.getBoolean(FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE));
+ } else {
+ Assert.assertTrue("Search engine page wasn't shown.",
+ freProperties.getBoolean(FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE));
+ int jumpCallCount = mTestObserver.jumpToPageCallback.getCallCount();
+
+ // Click on the first search engine option available.
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ ViewGroup options = (ViewGroup) mActivity.findViewById(R.id.engine_controls);
+ options.getChildAt(0).performClick();
+ mSelectedEngine = (String) (options.getChildAt(0).getTag());
+ }
+ });
+
+ clickButton(mActivity, R.id.button_primary, "Failed to select default search engine");
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ Assert.assertEquals("Search engine wasn't set",
+ TemplateUrlService.getInstance()
+ .getDefaultSearchEngineTemplateUrl()
+ .getKeyword(),
+ mSelectedEngine);
+ }
+ });
+
+ mTestObserver.jumpToPageCallback.waitForCallback(
+ "Failed to try moving to next screen", jumpCallCount);
+ }
+
// Don't sign in the user.
if (freProperties.getBoolean(FirstRunActivity.SHOW_SIGNIN_PAGE)) {
int jumpCallCount = mTestObserver.jumpToPageCallback.getCallCount();

Powered by Google App Engine
This is Rietveld 408576698