Chromium Code Reviews| 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); |
| +} |