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 |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b361e409a27872b11c5986bec002f57899d546b8 |
--- /dev/null |
+++ b/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServer.java |
@@ -0,0 +1,105 @@ |
+// Copyright 2015 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.net.test; |
+ |
+import org.chromium.base.CalledByNative; |
+import org.chromium.base.JNINamespace; |
+import org.chromium.base.Log; |
+ |
+import java.io.File; |
+ |
+/** |
+ * Java bindings for the native embedded test server. |
+ */ |
+@JNINamespace("net::test_server") |
+public class EmbeddedTestServer { |
+ private static final String TAG = Log.makeTag("net.test"); |
+ |
+ private long mNativeEmbeddedTestServer; |
+ |
+ /** Create an uninitialized EmbeddedTestServer. */ |
+ public EmbeddedTestServer() {} |
+ |
+ /** Initialize the native EmbeddedTestServer object. */ |
+ public void initializeNative() { |
mef
2015/06/17 21:55:55
should this method be private?
jbudorick
2015/06/18 17:44:56
No. Clients will call this explicitly to initializ
mef
2015/06/19 19:26:07
Acknowledged.
|
+ if (mNativeEmbeddedTestServer == 0) nativeInit(); |
+ assert mNativeEmbeddedTestServer != 0; |
mef
2015/06/17 21:55:55
I'm unfamiliar with this notation, how does it wor
jbudorick
2015/06/18 17:44:56
I had based this on Tab, which uses assertions sim
mef
2015/06/19 19:26:07
Acknowledged.
|
+ } |
+ |
+ /** Serve files from the provided directory. |
+ * |
+ * @param directory The directory from which files should be served. |
+ */ |
+ public void serveFilesFromDirectory(File directory) { |
+ nativeServeFilesFromDirectory(mNativeEmbeddedTestServer, directory.getPath()); |
+ } |
+ |
+ /** Serve files from the provided directory. |
+ * |
+ * @param directoryPath The path of the directory from which files should be served. |
+ */ |
+ public void serveFilesFromDirectory(String directoryPath) { |
+ nativeServeFilesFromDirectory(mNativeEmbeddedTestServer, directoryPath); |
+ } |
+ |
+ /** Initialize the server. |
+ * |
+ * Note that this should be called after handlers are set up, including any relevant calls |
+ * serveFilesFromDirectory. |
+ * |
+ * @return Whether the server was successfully initialized. |
+ */ |
+ public boolean initializeAndWaitUntilReady() { |
+ return nativeInitializeAndWaitUntilReady(mNativeEmbeddedTestServer); |
+ } |
+ |
+ /** Get the full URL for the given relative URL. |
+ * |
+ * @param relativeUrl The relative URL for which a full URL will be obtained. |
+ * @return The URL as a String. |
+ */ |
+ public String getURL(String relativeUrl) { |
+ return nativeGetURL(mNativeEmbeddedTestServer, relativeUrl); |
+ } |
+ |
+ /** Shut down the server. |
mef
2015/06/17 21:55:55
nit: Shutdown as one word?
jbudorick
2015/06/18 17:44:56
done
|
+ * |
+ * @return Whether the server was successfully shut down. |
+ */ |
+ public boolean shutdownAndWaitUntilComplete() { |
+ return nativeShutdownAndWaitUntilComplete(mNativeEmbeddedTestServer); |
+ } |
+ |
+ /** Destroy the native EmbeddedTestServer object. */ |
+ public void destroy() { |
mef
2015/06/17 21:55:55
what if it is destroyed without shutdownAndWaitFor
jbudorick
2015/06/18 17:44:55
We'll hit this: https://code.google.com/p/chromium
|
+ assert mNativeEmbeddedTestServer != 0; |
+ nativeDestroy(mNativeEmbeddedTestServer); |
+ assert mNativeEmbeddedTestServer == 0; |
+ } |
+ |
+ @CalledByNative |
+ private void setNativePtr(long nativePtr) { |
+ assert mNativeEmbeddedTestServer == 0; |
+ mNativeEmbeddedTestServer = nativePtr; |
+ } |
+ |
+ @CalledByNative |
+ private void clearNativePtr() { |
+ assert mNativeEmbeddedTestServer != 0; |
+ mNativeEmbeddedTestServer = 0; |
+ } |
+ |
+ private native void nativeInit(); |
+ private native void nativeDestroy(long nativeEmbeddedTestServerAndroid); |
+ private native boolean nativeInitializeAndWaitUntilReady(long nativeEmbeddedTestServerAndroid); |
+ private native boolean nativeShutdownAndWaitUntilComplete(long nativeEmbeddedTestServerAndroid); |
+ private native String nativeGetURL(long nativeEmbeddedTestServerAndroid, String relativeUrl); |
+ private native void nativeServeFilesFromDirectory( |
+ long nativeEmbeddedTestServerAndroid, String directoryPath); |
+ private native void nativeRegisterRequestHandler( |
mef
2015/06/17 21:55:55
unused?
jbudorick
2015/06/18 17:44:55
oops, these are leftovers from my experimentation
|
+ long nativeEmbeddedTestServerAndroid, long nativeRequestHandler); |
+ private native void nativeRegisterRequestHandlers( |
mef
2015/06/17 21:55:55
unused?
|
+ long nativeEmbeddedTestServerAndroid, long[] nativeRequestHandlers); |
+} |