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; |
+ } |
} |