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

Unified Diff: content/public/test/android/javatests/src/org/chromium/content/browser/test/ChildProcessLauncherTestHelper.java

Issue 2076583002: Add WebAPK's tests in ChildProcessLauncherTest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move more functions to the helper class. Created 4 years, 6 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: content/public/test/android/javatests/src/org/chromium/content/browser/test/ChildProcessLauncherTestHelper.java
diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/ChildProcessLauncherTestHelper.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/ChildProcessLauncherTestHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..ee84a37b092acdb705a92bedf41172c68cc6eb68
--- /dev/null
+++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/ChildProcessLauncherTestHelper.java
@@ -0,0 +1,74 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.content.browser.test;
+
+import android.app.Service;
+import android.content.Context;
+
+import org.chromium.base.library_loader.LibraryLoader;
+import org.chromium.base.library_loader.LibraryProcessType;
+import org.chromium.content.browser.ChildProcessConnectionImpl;
+import org.chromium.content.browser.ChildProcessCreationParams;
+import org.chromium.content.browser.ChildProcessLauncher;
+import org.chromium.content.browser.test.util.Criteria;
+import org.chromium.content.browser.test.util.CriteriaHelper;
+
+/**
+ * A helper class for {@link ChildProcessLauncherTest} and its subclass
+ * {@link ChromeChildProcessLauncherTest}.
+ */
+public class ChildProcessLauncherTestHelper {
+
+ /**
+ * Returns the number of Chrome's sandboxed connections.
+ */
+ public static int allocatedChromeSandboxedConnectionsCount(Context context) {
+ return ChildProcessLauncher.allocatedSandboxedConnectionsCountForTesting(
+ context, context.getPackageName());
+ }
+
+ /**
+ * Returns whether the connection is established and connected.
+ */
+ public static ChildProcessConnectionImpl startConnection(Context context, String packageName,
+ Class<? extends Service> servicecClass)
+ throws InterruptedException {
+ // Allocate a new connection.
+ final ChildProcessConnectionImpl connection =
+ (ChildProcessConnectionImpl) ChildProcessLauncher.allocateBoundConnectionForTesting(
+ context,
+ ChildProcessLauncherTestHelper.getChildProcessCreationParams(
+ packageName, servicecClass));
+
+ if (connection == null) {
+ return null;
+ }
+ // Wait for the service to connect.
+ CriteriaHelper.pollInstrumentationThread(
+ new Criteria("The connection wasn't established.") {
+ @Override
+ public boolean isSatisfied() {
+ return connection.isConnected();
+ }
+ });
+ return connection;
+ }
+
+ /**
+ * Returns a {@link ChildProcessCreationParams} for the given package name and service name.
+ */
+ public static ChildProcessCreationParams getChildProcessCreationParams(String packageName,
+ Class<? extends Service> serviceClass) {
+ return new ChildProcessCreationParams(packageName, 0,
+ LibraryProcessType.PROCESS_CHILD, serviceClass);
+ }
+
+ /**
+ * Loads and initialize the library if necessary.
+ */
+ public static void ensureLibraryInitialized(Context context) throws Exception {
+ LibraryLoader.get(LibraryProcessType.PROCESS_CHILD).ensureInitialized(context);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698