Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Side by Side Diff: net/test/embedded_test_server/android/embedded_test_server_android.cc

Issue 2687573002: [Android Webview] Refactor LoadUrlTest and work on embedded_test_server custom handler (Closed)
Patch Set: discussion patch Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/test/embedded_test_server/android/embedded_test_server_android.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/test/embedded_test_server/android/embedded_test_server_android.h" 5 #include "net/test/embedded_test_server/android/embedded_test_server_android.h"
6 6
7 #include "android_webview/embeddedtestserver/custom_handlers.h"
shenghuazhang 2017/03/04 00:22:21 Shows presubmit error: Illegal include: "android_w
sgurun-gerrit only 2017/03/06 18:35:17 Not acceptable. Android webview is a layer on top
jbudorick 2017/03/06 18:36:45 yeah, we discussed this & alternative mechanisms f
8 #include "base/android/jni_array.h"
7 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
8 #include "base/android/scoped_java_ref.h" 10 #include "base/android/scoped_java_ref.h"
9 #include "base/bind.h" 11 #include "base/bind.h"
10 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
11 #include "base/test/test_support_android.h" 13 #include "base/test/test_support_android.h"
12 #include "base/trace_event/trace_event.h" 14 #include "base/trace_event/trace_event.h"
13 #include "net/test/jni/EmbeddedTestServerImpl_jni.h" 15 #include "net/test/jni/EmbeddedTestServerImpl_jni.h"
14 16
15 using base::android::JavaParamRef; 17 using base::android::JavaParamRef;
16 using base::android::JavaRef; 18 using base::android::JavaRef;
19 using base::android::ScopedJavaLocalRef;
17 20
18 namespace net { 21 namespace net {
19 namespace test_server { 22 namespace test_server {
20 23
21 EmbeddedTestServerAndroid::EmbeddedTestServerAndroid( 24 EmbeddedTestServerAndroid::EmbeddedTestServerAndroid(
22 JNIEnv* env, 25 JNIEnv* env,
23 const JavaRef<jobject>& jobj) 26 const JavaRef<jobject>& jobj)
24 : weak_java_server_(env, jobj), test_server_() { 27 : weak_java_server_(env, jobj), test_server_() {
25 Java_EmbeddedTestServerImpl_setNativePtr(env, jobj, 28 Java_EmbeddedTestServerImpl_setNativePtr(env, jobj,
26 reinterpret_cast<intptr_t>(this)); 29 reinterpret_cast<intptr_t>(this));
27 } 30 }
28 31
29 EmbeddedTestServerAndroid::~EmbeddedTestServerAndroid() { 32 EmbeddedTestServerAndroid::~EmbeddedTestServerAndroid() {
30 JNIEnv* env = base::android::AttachCurrentThread(); 33 JNIEnv* env = base::android::AttachCurrentThread();
31 Java_EmbeddedTestServerImpl_clearNativePtr(env, weak_java_server_.get(env)); 34 Java_EmbeddedTestServerImpl_clearNativePtr(env, weak_java_server_.get(env));
32 } 35 }
33 36
34 jboolean EmbeddedTestServerAndroid::Start(JNIEnv* env, 37 jboolean EmbeddedTestServerAndroid::Start(JNIEnv* env,
35 const JavaParamRef<jobject>& jobj) { 38 const JavaParamRef<jobject>& jobj) {
36 return test_server_.Start(); 39 return test_server_.Start();
37 } 40 }
38 41
39 jboolean EmbeddedTestServerAndroid::ShutdownAndWaitUntilComplete( 42 jboolean EmbeddedTestServerAndroid::ShutdownAndWaitUntilComplete(
40 JNIEnv* env, 43 JNIEnv* env,
41 const JavaParamRef<jobject>& jobj) { 44 const JavaParamRef<jobject>& jobj) {
42 return test_server_.ShutdownAndWaitUntilComplete(); 45 return test_server_.ShutdownAndWaitUntilComplete();
43 } 46 }
44 47
45 base::android::ScopedJavaLocalRef<jstring> EmbeddedTestServerAndroid::GetURL( 48 ScopedJavaLocalRef<jstring> EmbeddedTestServerAndroid::GetURL(
46 JNIEnv* env, 49 JNIEnv* env,
47 const JavaParamRef<jobject>& jobj, 50 const JavaParamRef<jobject>& jobj,
48 const JavaParamRef<jstring>& jrelative_url) const { 51 const JavaParamRef<jstring>& jrelative_url) const {
49 const GURL gurl(test_server_.GetURL( 52 const GURL gurl(test_server_.GetURL(
50 base::android::ConvertJavaStringToUTF8(env, jrelative_url))); 53 base::android::ConvertJavaStringToUTF8(env, jrelative_url)));
51 return base::android::ConvertUTF8ToJavaString(env, gurl.spec()); 54 return base::android::ConvertUTF8ToJavaString(env, gurl.spec());
52 } 55 }
53 56
54 void EmbeddedTestServerAndroid::AddDefaultHandlers( 57 void EmbeddedTestServerAndroid::AddDefaultHandlers(
55 JNIEnv* env, 58 JNIEnv* env,
56 const JavaParamRef<jobject>& jobj, 59 const JavaParamRef<jobject>& jobj,
57 const JavaParamRef<jstring>& jdirectory_path) { 60 const JavaParamRef<jstring>& jdirectory_path) {
58 const base::FilePath directory( 61 const base::FilePath directory(
59 base::android::ConvertJavaStringToUTF8(env, jdirectory_path)); 62 base::android::ConvertJavaStringToUTF8(env, jdirectory_path));
60 test_server_.AddDefaultHandlers(directory); 63 test_server_.AddDefaultHandlers(directory);
61 } 64 }
62 65
66 ScopedJavaLocalRef<jlongArray> EmbeddedTestServerAndroid::GetCustomHandlers(
67 JNIEnv* env,
68 const JavaParamRef<jobject>& jobj) {
69 return base::android::ToJavaLongArray(env, getHandlers());
70 }
71
72 typedef std::unique_ptr<HttpResponse> (*HandlerUniquePtr)(
73 const HttpRequest& request);
74
75 void EmbeddedTestServerAndroid::RegisterRequestHandler(
76 JNIEnv* env,
77 const JavaParamRef<jobject>& jobj,
78 jlong handler) {
79 HandlerUniquePtr& handler_ptr = reinterpret_cast<HandlerUniquePtr&>(handler);
80 test_server_.RegisterRequestHandler(
81 base::Bind(handler_ptr));
82 }
83
63 void EmbeddedTestServerAndroid::ServeFilesFromDirectory( 84 void EmbeddedTestServerAndroid::ServeFilesFromDirectory(
64 JNIEnv* env, 85 JNIEnv* env,
65 const JavaParamRef<jobject>& jobj, 86 const JavaParamRef<jobject>& jobj,
66 const JavaParamRef<jstring>& jdirectory_path) { 87 const JavaParamRef<jstring>& jdirectory_path) {
67 const base::FilePath directory( 88 const base::FilePath directory(
68 base::android::ConvertJavaStringToUTF8(env, jdirectory_path)); 89 base::android::ConvertJavaStringToUTF8(env, jdirectory_path));
69 test_server_.ServeFilesFromDirectory(directory); 90 test_server_.ServeFilesFromDirectory(directory);
70 } 91 }
71 92
72 void EmbeddedTestServerAndroid::Destroy(JNIEnv* env, 93 void EmbeddedTestServerAndroid::Destroy(JNIEnv* env,
(...skipping 11 matching lines...) Expand all
84 new EmbeddedTestServerAndroid(env, jobj); 105 new EmbeddedTestServerAndroid(env, jobj);
85 } 106 }
86 107
87 // static 108 // static
88 bool EmbeddedTestServerAndroid::RegisterEmbeddedTestServerAndroid(JNIEnv* env) { 109 bool EmbeddedTestServerAndroid::RegisterEmbeddedTestServerAndroid(JNIEnv* env) {
89 return RegisterNativesImpl(env); 110 return RegisterNativesImpl(env);
90 } 111 }
91 112
92 } // namespace test_server 113 } // namespace test_server
93 } // namespace net 114 } // namespace net
OLDNEW
« no previous file with comments | « net/test/embedded_test_server/android/embedded_test_server_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698