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 |