Index: components/cronet/android/test/upload_test_server.cc |
diff --git a/components/cronet/android/test/upload_test_server.cc b/components/cronet/android/test/upload_test_server.cc |
index 4f8a59b103b081b6d2d63d52aeac7b8fc15d2d80..a009c9b9ee44d9b6bbe4c2480b45253f63eec6c1 100644 |
--- a/components/cronet/android/test/upload_test_server.cc |
+++ b/components/cronet/android/test/upload_test_server.cc |
@@ -7,7 +7,9 @@ |
#include "base/android/jni_android.h" |
#include "base/android/jni_string.h" |
#include "base/bind.h" |
+#include "base/files/file_path.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/path_service.h" |
#include "base/strings/string_util.h" |
#include "jni/UploadTestServer_jni.h" |
#include "net/http/http_status_code.h" |
@@ -84,6 +86,11 @@ jboolean StartUploadTestServer(JNIEnv* env, jclass jcaller) { |
g_test_server = new net::test_server::EmbeddedTestServer(); |
g_test_server->RegisterRequestHandler( |
base::Bind(&UploadServerRequestHandler)); |
+ // Add a second handler for paths that UploadServerRequestHandler does not |
+ // handle. |
+ base::FilePath test_files_root; |
+ PathService::Get(base::DIR_ANDROID_APP_DATA, &test_files_root); |
+ g_test_server->ServeFilesFromDirectory(test_files_root); |
return g_test_server->InitializeAndWaitUntilReady(); |
} |
@@ -128,6 +135,13 @@ jstring GetRedirectToEchoBody(JNIEnv* env, jclass jcaller) { |
return base::android::ConvertUTF8ToJavaString(env, url.spec()).Release(); |
} |
+jstring GetFileURL(JNIEnv* env, jclass jcaller, jstring jfile_path) { |
+ DCHECK(g_test_server); |
+ std::string file = base::android::ConvertJavaStringToUTF8(env, jfile_path); |
+ GURL url = g_test_server->GetURL(file); |
+ return base::android::ConvertUTF8ToJavaString(env, url.spec()).Release(); |
+} |
+ |
bool RegisterUploadTestServer(JNIEnv* env) { |
return RegisterNativesImpl(env); |
} |