Chromium Code Reviews| 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..01f5dfd812b1a4ed3640becae7868ab784a4ef77 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; |
| @@ -229,9 +233,31 @@ public class FirstRunIntegrationTest { |
| }); |
| } |
| + private String mSelectedEngine; |
|
Ted C
2017/05/04 00:16:57
move to top?
gone
2017/05/04 00:28:12
Done.
|
| + |
| + @Test |
| + @MediumTest |
| + public void testDefaultSearchEngine_DontShow() throws Exception { |
| + runSearchEnginePromptTest(LocaleManager.SEARCH_ENGINE_PROMO_DONT_SHOW); |
| + } |
| + |
| @Test |
| @MediumTest |
| - public void testClickThroughFirstRun() throws Exception { |
| + 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 +286,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 +300,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(); |