xref: /aosp_15_r20/external/cronet/components/cronet/android/test/native_test_server.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2014 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include <jni.h>
6 
7 #include <memory>
8 #include <string>
9 #include <utility>
10 
11 #include "base/android/jni_android.h"
12 #include "base/android/jni_string.h"
13 #include "base/files/file_path.h"
14 #include "base/test/test_support_android.h"
15 #include "components/cronet/android/cronet_test_apk_jni/NativeTestServer_jni.h"
16 #include "components/cronet/testing/test_server/test_server.h"
17 #include "net/test/embedded_test_server/embedded_test_server.h"
18 
19 using base::android::JavaParamRef;
20 using base::android::ScopedJavaLocalRef;
21 
22 namespace cronet {
23 
JNI_NativeTestServer_StartNativeTestServer(JNIEnv * env,const JavaParamRef<jstring> & jtest_files_root,const JavaParamRef<jstring> & jtest_data_dir,jboolean juse_https,jint jserver_certificate)24 jboolean JNI_NativeTestServer_StartNativeTestServer(
25     JNIEnv* env,
26     const JavaParamRef<jstring>& jtest_files_root,
27     const JavaParamRef<jstring>& jtest_data_dir,
28     jboolean juse_https,
29     jint jserver_certificate) {
30   base::FilePath test_data_dir(
31       base::android::ConvertJavaStringToUTF8(env, jtest_data_dir));
32   base::InitAndroidTestPaths(test_data_dir);
33 
34   base::FilePath test_files_root(
35       base::android::ConvertJavaStringToUTF8(env, jtest_files_root));
36   return cronet::TestServer::StartServeFilesFromDirectory(
37       test_files_root,
38       (juse_https ? net::test_server::EmbeddedTestServer::TYPE_HTTPS
39                   : net::test_server::EmbeddedTestServer::TYPE_HTTP),
40       static_cast<net::EmbeddedTestServer::ServerCertificate>(
41           jserver_certificate));
42 }
43 
JNI_NativeTestServer_ShutdownNativeTestServer(JNIEnv * env)44 void JNI_NativeTestServer_ShutdownNativeTestServer(JNIEnv* env) {
45   cronet::TestServer::Shutdown();
46 }
47 
JNI_NativeTestServer_GetEchoBodyURL(JNIEnv * env)48 ScopedJavaLocalRef<jstring> JNI_NativeTestServer_GetEchoBodyURL(JNIEnv* env) {
49   return base::android::ConvertUTF8ToJavaString(
50       env, cronet::TestServer::GetEchoRequestBodyURL());
51 }
52 
JNI_NativeTestServer_GetEchoHeaderURL(JNIEnv * env,const JavaParamRef<jstring> & jheader)53 ScopedJavaLocalRef<jstring> JNI_NativeTestServer_GetEchoHeaderURL(
54     JNIEnv* env,
55     const JavaParamRef<jstring>& jheader) {
56   return base::android::ConvertUTF8ToJavaString(
57       env, cronet::TestServer::GetEchoHeaderURL(
58                base::android::ConvertJavaStringToUTF8(env, jheader)));
59 }
60 
JNI_NativeTestServer_GetEchoAllHeadersURL(JNIEnv * env)61 ScopedJavaLocalRef<jstring> JNI_NativeTestServer_GetEchoAllHeadersURL(
62     JNIEnv* env) {
63   return base::android::ConvertUTF8ToJavaString(
64       env, cronet::TestServer::GetEchoAllHeadersURL());
65 }
66 
JNI_NativeTestServer_GetEchoMethodURL(JNIEnv * env)67 ScopedJavaLocalRef<jstring> JNI_NativeTestServer_GetEchoMethodURL(JNIEnv* env) {
68   return base::android::ConvertUTF8ToJavaString(
69       env, cronet::TestServer::GetEchoMethodURL());
70 }
71 
JNI_NativeTestServer_GetRedirectToEchoBody(JNIEnv * env)72 ScopedJavaLocalRef<jstring> JNI_NativeTestServer_GetRedirectToEchoBody(
73     JNIEnv* env) {
74   return base::android::ConvertUTF8ToJavaString(
75       env, cronet::TestServer::GetRedirectToEchoBodyURL());
76 }
77 
JNI_NativeTestServer_GetFileURL(JNIEnv * env,const JavaParamRef<jstring> & jfile_path)78 ScopedJavaLocalRef<jstring> JNI_NativeTestServer_GetFileURL(
79     JNIEnv* env,
80     const JavaParamRef<jstring>& jfile_path) {
81   return base::android::ConvertUTF8ToJavaString(
82       env, cronet::TestServer::GetFileURL(
83                base::android::ConvertJavaStringToUTF8(env, jfile_path)));
84 }
85 
JNI_NativeTestServer_GetPort(JNIEnv * env)86 jint JNI_NativeTestServer_GetPort(JNIEnv* env) {
87   return cronet::TestServer::GetPort();
88 }
89 
JNI_NativeTestServer_GetExabyteResponseURL(JNIEnv * env)90 ScopedJavaLocalRef<jstring> JNI_NativeTestServer_GetExabyteResponseURL(
91     JNIEnv* env) {
92   return base::android::ConvertUTF8ToJavaString(
93       env, cronet::TestServer::GetExabyteResponseURL());
94 }
95 
JNI_NativeTestServer_GetHostPort(JNIEnv * env)96 ScopedJavaLocalRef<jstring> JNI_NativeTestServer_GetHostPort(JNIEnv* env) {
97   return base::android::ConvertUTF8ToJavaString(
98       env, cronet::TestServer::GetHostPort());
99 }
100 
101 }  // namespace cronet
102