Index: net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServer.java |
diff --git a/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServer.java b/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServer.java |
index 06ab79e6e4ced09ddfe856c000a0f00997c29f44..838df01535667a3defa6d205b4c2c673b194f8b7 100644 |
--- a/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServer.java |
+++ b/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServer.java |
@@ -65,6 +65,32 @@ public class EmbeddedTestServer { |
return nativeInitializeAndWaitUntilReady(mNativeEmbeddedTestServer); |
} |
+ /** Thrown if a server can't be set up. */ |
+ public static final class SetupFailedError extends Error { |
+ public SetupFailedError() { |
+ super("Failed to set up EmbeddedTestServer."); |
+ } |
+ } |
+ |
+ /** Create and initialize a server that serves files from the provided directory. |
+ * |
+ * This handles native object initialization, server configuration, and server initialization. |
+ * On returning, the server is ready for use. |
+ * |
+ * @param directory The directory from which files should be served. |
+ * @return The created server. |
+ * @throws SetupFailedError if the server can't be initialized. |
+ */ |
+ public static EmbeddedTestServer createAndStartFileServer(File directory) { |
+ EmbeddedTestServer server = new EmbeddedTestServer(); |
+ server.initializeNative(); |
+ server.serveFilesFromDirectory(directory); |
+ if (!server.initializeAndWaitUntilReady()) { |
+ throw new SetupFailedError(); |
+ } |
+ return server; |
+ } |
+ |
/** Get the full URL for the given relative URL. |
* |
* @param relativeUrl The relative URL for which a full URL will be obtained. |
@@ -89,6 +115,27 @@ public class EmbeddedTestServer { |
assert mNativeEmbeddedTestServer == 0; |
} |
+ /** Thrown if a server can't be torn down. */ |
+ public static final class TeardownFailedError extends Error { |
+ public TeardownFailedError() { |
+ super("Failed to tear down EmbeddedTestServer."); |
+ } |
+ } |
+ |
+ /** Stop and destroy the provided server. |
+ * |
+ * This handles stopping the server and destroying the native object. |
+ * |
+ * @param server The server to stop and destroy. |
+ * @throws TeardownFailedError if the server can't be shut down. |
+ */ |
+ public static void stopAndDestroyServer(EmbeddedTestServer server) { |
+ if (!server.shutdownAndWaitUntilComplete()) { |
+ throw new TeardownFailedError(); |
+ } |
+ server.destroy(); |
+ } |
+ |
@CalledByNative |
private void setNativePtr(long nativePtr) { |
assert mNativeEmbeddedTestServer == 0; |