Chromium Code Reviews| Index: net/test/embedded_test_server/android/embedded_test_server_android.cc |
| diff --git a/net/test/embedded_test_server/android/embedded_test_server_android.cc b/net/test/embedded_test_server/android/embedded_test_server_android.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f5127e6b626a20be54d8a1e543a0ec9aa62f86b8 |
| --- /dev/null |
| +++ b/net/test/embedded_test_server/android/embedded_test_server_android.cc |
| @@ -0,0 +1,68 @@ |
| +#include "net/test/embedded_test_server/android/embedded_test_server_android.h" |
| + |
| +#include "base/android/jni_array.h" |
| +#include "base/android/jni_string.h" |
| +#include "base/android/scoped_java_ref.h" |
| +#include "base/bind.h" |
| +#include "base/files/file_path.h" |
| +#include "base/trace_event/trace_event.h" |
| +#include "net/test/jni/EmbeddedTestServer_jni.h" |
| + |
| +namespace net { |
| +namespace test_server { |
| + |
| +EmbeddedTestServerAndroid::EmbeddedTestServerAndroid(JNIEnv* env, jobject obj) |
| + : weak_java_server_(env, obj), test_server_() { |
| + Java_EmbeddedTestServer_setNativePtr(env, obj, |
| + reinterpret_cast<intptr_t>(this)); |
| +} |
| + |
| +EmbeddedTestServerAndroid::~EmbeddedTestServerAndroid() { |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + Java_EmbeddedTestServer_clearNativePtr(env, weak_java_server_.get(env).obj()); |
| +} |
| + |
| +jboolean EmbeddedTestServerAndroid::InitializeAndWaitUntilReady(JNIEnv* env, |
| + jobject obj) { |
| + return test_server_.InitializeAndWaitUntilReady(); |
|
mef
2015/06/17 21:55:56
what if ServeFilesFromDirectory was not called?
jbudorick
2015/06/18 17:44:56
The server will hit this when attempting to handle
|
| +} |
| + |
| +jboolean EmbeddedTestServerAndroid::ShutdownAndWaitUntilComplete(JNIEnv* env, |
| + jobject obj) { |
| + return test_server_.ShutdownAndWaitUntilComplete(); |
| +} |
| + |
| +base::android::ScopedJavaLocalRef<jstring> EmbeddedTestServerAndroid::GetURL( |
| + JNIEnv* env, |
| + jobject obj, |
| + jstring relative_url) const { |
| + const GURL gurl(test_server_.GetURL( |
| + base::android::ConvertJavaStringToUTF8(env, relative_url))); |
| + return base::android::ConvertUTF8ToJavaString(env, gurl.spec()); |
| +} |
| + |
| +void EmbeddedTestServerAndroid::ServeFilesFromDirectory( |
| + JNIEnv* env, |
| + jobject obj, |
| + jstring directory_path) { |
| + const base::FilePath directory( |
| + base::android::ConvertJavaStringToUTF8(env, directory_path)); |
| + test_server_.ServeFilesFromDirectory(directory); |
| +} |
| + |
| +void EmbeddedTestServerAndroid::Destroy(JNIEnv* env, jobject obj) { |
| + delete this; |
| +} |
| + |
| +static void Init(JNIEnv* env, jobject obj) { |
| + TRACE_EVENT0("native", "EmbeddedTestServerAndroid::Init"); |
| + new EmbeddedTestServerAndroid(env, obj); |
| +} |
| + |
| +// static |
| +bool EmbeddedTestServerAndroid::RegisterEmbeddedTestServerAndroid(JNIEnv* env) { |
| + return RegisterNativesImpl(env); |
| +} |
| + |
| +} // namespace test_server |
| +} // namespace net |