| 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 0e4a031c307e883dbe9e6062859a210d496d1fa1..df5bf024cee399ad568a479bf270aae5b1245f4a 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
|
| @@ -11,19 +11,16 @@
|
| import android.content.Intent;
|
| import android.net.Uri;
|
| import android.support.customtabs.CustomTabsIntent;
|
| -import android.support.test.filters.MediumTest;
|
| import android.support.test.filters.SmallTest;
|
| -import android.widget.Button;
|
| +import android.test.InstrumentationTestCase;
|
|
|
| -import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.test.util.CommandLineFlags;
|
| -import org.chromium.chrome.R;
|
| import org.chromium.chrome.browser.ChromeSwitches;
|
| 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.searchwidget.SearchActivity;
|
| -import org.chromium.chrome.test.MultiActivityTestBase;
|
| +import org.chromium.chrome.test.util.ApplicationTestUtils;
|
| import org.chromium.content.browser.test.util.Criteria;
|
| import org.chromium.content.browser.test.util.CriteriaHelper;
|
|
|
| @@ -31,19 +28,16 @@
|
| * Integration test suite for the first run experience.
|
| */
|
| @CommandLineFlags.Remove(ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE)
|
| -public class FirstRunIntegrationTest extends MultiActivityTestBase {
|
| - private FirstRunActivityTestObserver mTestObserver = new FirstRunActivityTestObserver();
|
| - private Activity mActivity;
|
| -
|
| +public class FirstRunIntegrationTest extends InstrumentationTestCase {
|
| @Override
|
| public void setUp() throws Exception {
|
| super.setUp();
|
| - FirstRunActivity.setObserverForTest(mTestObserver);
|
| + ApplicationTestUtils.setUp(getInstrumentation().getTargetContext(), true);
|
| }
|
|
|
| @Override
|
| public void tearDown() throws Exception {
|
| - if (mActivity != null) mActivity.finish();
|
| + ApplicationTestUtils.tearDown(getInstrumentation().getTargetContext());
|
| super.tearDown();
|
| }
|
|
|
| @@ -170,105 +164,4 @@
|
| assertEquals(0, freMonitor.getHits());
|
| }
|
|
|
| - @SmallTest
|
| - public void testAbortFirstRun() throws Exception {
|
| - final ActivityMonitor freMonitor =
|
| - new ActivityMonitor(FirstRunActivity.class.getName(), null, false);
|
| - Instrumentation instrumentation = getInstrumentation();
|
| - instrumentation.addMonitor(freMonitor);
|
| -
|
| - final Context context = instrumentation.getTargetContext();
|
| - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://test.com"));
|
| - intent.setPackage(context.getPackageName());
|
| - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
| - context.startActivity(intent);
|
| -
|
| - // Because the AsyncInitializationActivity notices that the FRE hasn't been run yet, it
|
| - // redirects to it. Once the user closes the FRE, the user should be kicked back into the
|
| - // startup flow where they were interrupted.
|
| - mActivity = instrumentation.waitForMonitorWithTimeout(
|
| - freMonitor, CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL);
|
| - instrumentation.removeMonitor(freMonitor);
|
| - ActivityMonitor activityMonitor =
|
| - new ActivityMonitor(ChromeLauncherActivity.class.getName(), null, false);
|
| - instrumentation.addMonitor(activityMonitor);
|
| -
|
| - assertEquals(0, mTestObserver.abortFirstRunExperienceCallback.getCallCount());
|
| - mActivity.onBackPressed();
|
| - mTestObserver.abortFirstRunExperienceCallback.waitForCallback(
|
| - "FirstRunActivity didn't abort", 0);
|
| -
|
| - mActivity = instrumentation.waitForMonitorWithTimeout(
|
| - activityMonitor, CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL);
|
| - CriteriaHelper.pollInstrumentationThread(new Criteria() {
|
| - @Override
|
| - public boolean isSatisfied() {
|
| - return mActivity.isFinishing();
|
| - }
|
| - });
|
| - }
|
| -
|
| - @MediumTest
|
| - public void testClickThroughFirstRun() throws Exception {
|
| - final ActivityMonitor freMonitor =
|
| - new ActivityMonitor(FirstRunActivity.class.getName(), null, false);
|
| - Instrumentation instrumentation = getInstrumentation();
|
| - instrumentation.addMonitor(freMonitor);
|
| -
|
| - final Context context = instrumentation.getTargetContext();
|
| - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://test.com"));
|
| - intent.setPackage(context.getPackageName());
|
| - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
| - context.startActivity(intent);
|
| -
|
| - // Because the AsyncInitializationActivity notices that the FRE hasn't been run yet, it
|
| - // redirects to it. Once the user closes the FRE, the user should be kicked back into the
|
| - // startup flow where they were interrupted.
|
| - mActivity = instrumentation.waitForMonitorWithTimeout(
|
| - freMonitor, CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL);
|
| - instrumentation.removeMonitor(freMonitor);
|
| - ActivityMonitor activityMonitor =
|
| - new ActivityMonitor(ChromeTabbedActivity.class.getName(), null, false);
|
| - instrumentation.addMonitor(activityMonitor);
|
| -
|
| - // Accept the ToS.
|
| - mTestObserver.flowIsKnownCallback.waitForCallback("Failed to finalize the flow", 0);
|
| - clickButton(mActivity, R.id.terms_accept);
|
| - mTestObserver.acceptTermsOfServiceCallback.waitForCallback("Failed to accept the ToS", 0);
|
| - mTestObserver.jumpToPageCallback.waitForCallback(
|
| - "Failed to try moving to the next screen", 0);
|
| -
|
| - // Acknowledge that Data Saver will be enabled.
|
| - int jumpCallCount = mTestObserver.jumpToPageCallback.getCallCount();
|
| - clickButton(mActivity, R.id.next_button);
|
| - mTestObserver.jumpToPageCallback.waitForCallback(
|
| - "Failed to try moving to next screen", jumpCallCount);
|
| -
|
| - // Don't sign in the user.
|
| - assertEquals(0, mTestObserver.updateCachedEngineCallback.getCallCount());
|
| - jumpCallCount = mTestObserver.jumpToPageCallback.getCallCount();
|
| - clickButton(mActivity, R.id.negative_button);
|
| - mTestObserver.jumpToPageCallback.waitForCallback(
|
| - "Failed to try moving to next screen", jumpCallCount);
|
| - mTestObserver.updateCachedEngineCallback.waitForCallback(
|
| - "Failed to alert search widgets that an update is necessary", 0);
|
| -
|
| - // FRE should be completed now, which will kick the user back into the interrupted flow.
|
| - // In this case, the user gets sent to the ChromeTabbedActivity after a View Intent is
|
| - // processed by ChromeLauncherActivity.
|
| - mActivity = instrumentation.waitForMonitorWithTimeout(
|
| - activityMonitor, CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL);
|
| - assertNotNull(mActivity);
|
| - }
|
| -
|
| - private void clickButton(final Activity activity, final int id) {
|
| - ThreadUtils.runOnUiThread(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - Button button = (Button) activity.findViewById(id);
|
| - assertNotNull(button);
|
| - button.performClick();
|
| - }
|
| - });
|
| - }
|
| }
|
|
|