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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java

Issue 2805763003: customtabs: Add a test for external app redirection. (Closed)
Patch Set: . Created 3 years, 8 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/customtabs/CustomTabActivityTestBase.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java
index 92df68327eff74d662ac4012037334400d204200..dd022bb6c7da1b7cb0381b9e0f32dc21d89c862a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java
@@ -7,14 +7,23 @@ package org.chromium.chrome.browser.customtabs;
import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
import android.app.Activity;
+import android.app.Application;
+import android.content.Context;
import android.content.Intent;
import org.chromium.base.ApplicationStatus;
+import org.chromium.base.PathUtils;
+import org.chromium.base.ThreadUtils;
+import org.chromium.base.library_loader.LibraryLoader;
+import org.chromium.base.library_loader.LibraryProcessType;
import org.chromium.base.test.util.CallbackHelper;
import org.chromium.chrome.browser.DeferredStartupHandler;
+import org.chromium.chrome.browser.firstrun.FirstRunStatus;
import org.chromium.chrome.browser.tab.EmptyTabObserver;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.test.ChromeActivityTestCaseBase;
+import org.chromium.content.browser.BrowserStartupController;
+import org.chromium.content.browser.BrowserStartupController.StartupCallback;
import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
@@ -31,16 +40,40 @@ public abstract class CustomTabActivityTestBase extends
protected static final long STARTUP_TIMEOUT_MS = scaleTimeout(5) * 1000;
protected static final long LONG_TIMEOUT_MS = scaleTimeout(10) * 1000;
+ private static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chrome";
public CustomTabActivityTestBase() {
super(CustomTabActivity.class);
}
@Override
- public void startMainActivity() throws InterruptedException {
+ protected void setUp() throws Exception {
+ super.setUp();
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ FirstRunStatus.setFirstRunFlowComplete(true);
+ }
+ });
+ PathUtils.setPrivateDataDirectorySuffix(PRIVATE_DATA_DIRECTORY_SUFFIX);
+ LibraryLoader.get(LibraryProcessType.PROCESS_BROWSER).ensureInitialized();
}
@Override
+ protected void tearDown() throws Exception {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ FirstRunStatus.setFirstRunFlowComplete(false);
+ }
+ });
+ super.tearDown();
+ }
+
+ @Override
+ public void startMainActivity() throws InterruptedException {}
+
+ @Override
protected void startActivityCompletely(Intent intent) {
Activity activity = getInstrumentation().startActivitySync(intent);
assertNotNull("Main activity did not start", activity);
@@ -99,4 +132,36 @@ public abstract class CustomTabActivityTestBase extends
assertNotNull(tab.getView());
assertTrue(tab.isCurrentlyACustomTab());
}
+
+ protected CustomTabsConnection warmUpAndWait() {
Yusuf 2017/04/18 17:33:54 javadoc, now that it is protected
Benoit L 2017/04/19 09:19:08 Done.
+ final Context context = getInstrumentation().getTargetContext().getApplicationContext();
+ CustomTabsConnection connection =
+ CustomTabsTestUtils.setUpConnection((Application) context);
+ final CallbackHelper startupCallbackHelper = new CallbackHelper();
+ assertTrue(connection.warmup(0));
+ ThreadUtils.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ BrowserStartupController.get(LibraryProcessType.PROCESS_BROWSER)
+ .addStartupCompletedObserver(new StartupCallback() {
+ @Override
+ public void onSuccess(boolean alreadyStarted) {
+ startupCallbackHelper.notifyCalled();
+ }
+
+ @Override
+ public void onFailure() {
+ fail();
+ }
+ });
+ }
+ });
+
+ try {
+ startupCallbackHelper.waitForCallback(0);
+ } catch (TimeoutException | InterruptedException e) {
+ fail();
+ }
+ return connection;
+ }
}

Powered by Google App Engine
This is Rietveld 408576698