xref: /aosp_15_r20/external/cronet/net/android/BUILD.gn (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
5import("//build/config/android/config.gni")
6import("//build/config/android/rules.gni")
7import("//third_party/jni_zero/jni_zero.gni")
8
9android_library("net_java") {
10  sources = [
11    "java/src/org/chromium/net/AndroidCertVerifyResult.java",
12    "java/src/org/chromium/net/AndroidKeyStore.java",
13    "java/src/org/chromium/net/AndroidNetworkLibrary.java",
14    "java/src/org/chromium/net/AndroidTrafficStats.java",
15    "java/src/org/chromium/net/ChromiumNetworkAdapter.java",
16    "java/src/org/chromium/net/DnsStatus.java",
17    "java/src/org/chromium/net/GURLUtils.java",
18    "java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
19    "java/src/org/chromium/net/HttpNegotiateConstants.java",
20    "java/src/org/chromium/net/HttpUtil.java",
21    "java/src/org/chromium/net/MimeTypeFilter.java",
22    "java/src/org/chromium/net/NetStringUtil.java",
23    "java/src/org/chromium/net/NetworkActiveNotifier.java",
24    "java/src/org/chromium/net/NetworkChangeNotifier.java",
25    "java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
26    "java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
27    "java/src/org/chromium/net/ProxyBroadcastReceiver.java",
28    "java/src/org/chromium/net/ProxyChangeListener.java",
29    "java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
30    "java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
31    "java/src/org/chromium/net/X509Util.java",
32  ]
33  deps = [
34    ":net_thread_stats_uid_java",
35    "//base:base_java",
36    "//build/android:build_java",
37    "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
38    "//third_party/androidx:androidx_annotation_annotation_java",
39    "//third_party/jni_zero:jni_zero_java",
40  ]
41  srcjar_deps = [
42    ":net_android_java_enums_srcjar",
43    ":net_errors_java",
44    "//net:net_jni_headers",
45  ]
46  resources_package = "org.chromium.native_test"
47}
48
49android_library("net_thread_stats_uid_java") {
50  sources = [ "java/src/org/chromium/net/ThreadStatsUid.java" ]
51}
52
53android_aidl("embedded_test_server_aidl") {
54  interface_file = "../test/android/javatests/src/org/chromium/net/test/IEmbeddedTestServerInterface.aidl"
55  sources = [
56    "../test/android/javatests/src/org/chromium/net/test/IConnectionListener.aidl",
57    "../test/android/javatests/src/org/chromium/net/test/IEmbeddedTestServerImpl.aidl",
58  ]
59}
60
61android_library("embedded_test_server_aidl_java") {
62  testonly = true
63  deps = []
64  srcjar_deps = [ ":embedded_test_server_aidl" ]
65}
66
67generate_jni("net_test_support_jni") {
68  testonly = true
69  sources = [ "../test/android/javatests/src/org/chromium/net/AndroidNetworkLibraryTestUtil.java" ]
70}
71
72android_library("net_java_test_support") {
73  testonly = true
74  sources = [
75    "../test/android/javatests/src/org/chromium/net/AndroidNetworkLibraryTestUtil.java",
76    "../test/android/javatests/src/org/chromium/net/test/EmbeddedTestServer.java",
77    "../test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerRule.java",
78    "../test/android/javatests/src/org/chromium/net/test/util/CertTestUtil.java",
79    "../test/android/javatests/src/org/chromium/net/test/util/NetworkChangeNotifierTestUtil.java",
80    "../test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java",
81    "../test/android/javatests/src/org/chromium/net/test/util/WebServer.java",
82  ]
83  deps = [
84    ":embedded_test_server_aidl_java",
85    ":net_java",
86    "//base:base_java",
87    "//base:base_java_test_support",
88    "//base:base_java_url_utils_for_test",
89    "//third_party/androidx:androidx_annotation_annotation_java",
90    "//third_party/androidx:androidx_test_monitor_java",
91    "//third_party/androidx:androidx_test_uiautomator_uiautomator_java",
92    "//third_party/jni_zero:jni_zero_java",
93    "//third_party/junit",
94  ]
95  srcjar_deps = [
96    ":net_java_test_support_enums_srcjar",
97    ":net_test_support_jni",
98  ]
99  mergeable_android_manifests =
100      [ "../test/android/javatests/AndroidManifest_client.xml" ]
101}
102
103generate_jni("net_test_support_provider_jni") {
104  testonly = true
105  sources = [
106    "../test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java",
107    "../test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerImpl.java",
108  ]
109}
110
111android_library("net_test_support_provider_java") {
112  testonly = true
113  sources = [
114    "../test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticator.java",
115    "../test/android/javatests/src/org/chromium/net/test/DummySpnegoAuthenticatorService.java",
116    "../test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerImpl.java",
117    "../test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerService.java",
118  ]
119  srcjar_deps = [ ":net_test_support_provider_jni" ]
120
121  deps = [
122    ":embedded_test_server_aidl_java",
123    ":net_java",
124    "//base:base_java",
125    "//base:base_java_url_utils_for_test",
126    "//third_party/jni_zero:jni_zero_java",
127  ]
128
129  data_deps = [ "//net:test_support" ]
130}
131
132source_set("java_test_native_support") {
133  testonly = true
134  sources = [
135    "../test/android/net_test_entry_point.cc",
136    "../test/android/net_test_jni_onload.cc",
137    "../test/android/net_test_jni_onload.h",
138    "../test/embedded_test_server/android/embedded_test_server_android.cc",
139    "../test/embedded_test_server/android/embedded_test_server_android.h",
140  ]
141
142  deps = [ "//net:test_support" ]
143  public_deps = [ ":net_test_support_provider_jni" ]
144}
145
146shared_library_with_jni("net_java_test_native_support") {
147  testonly = true
148  deps = [
149    ":java_test_native_support",
150    "//net:test_support",
151  ]
152
153  configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
154  configs += [ "//build/config/android:hide_all_but_jni" ]
155  java_targets = [ ":net_test_support_apk" ]
156}
157
158android_apk("net_test_support_apk") {
159  testonly = true
160
161  # Used as an additional_apk in test scripts.
162  never_incremental = true
163
164  # Required on Android Q+ to read from /sdcard when installing certs.
165  target_sdk_version = 28
166
167  deps = [
168    ":net_java_test_support",
169    ":net_test_support_provider_java",
170  ]
171  android_manifest = "../test/android/javatests/AndroidManifest.xml"
172  apk_name = "ChromiumNetTestSupport"
173  shared_libraries = [ ":net_java_test_native_support" ]
174  srcjar_deps = [ ":net_java_test_native_support__jni_registration" ]
175}
176
177android_resources("net_unittests_apk_resources") {
178  sources = [
179    "unittest_support/res/mipmap-hdpi/app_icon.png",
180    "unittest_support/res/mipmap-mdpi/app_icon.png",
181    "unittest_support/res/mipmap-xhdpi/app_icon.png",
182    "unittest_support/res/mipmap-xxhdpi/app_icon.png",
183    "unittest_support/res/mipmap-xxxhdpi/app_icon.png",
184    "unittest_support/res/xml/dummy_spnego_account_preferences.xml",
185    "unittest_support/res/xml/dummy_spnego_authenticator.xml",
186  ]
187}
188
189generate_jni("net_tests_jni") {
190  testonly = true
191  sources = [
192    "javatests/src/org/chromium/net/AndroidKeyStoreTestUtil.java",
193    "javatests/src/org/chromium/net/AndroidProxyConfigServiceTestUtil.java",
194  ]
195}
196
197android_library("net_tests_java") {
198  testonly = true
199  sources = [
200    "javatests/src/org/chromium/net/AndroidKeyStoreTestUtil.java",
201    "javatests/src/org/chromium/net/AndroidNetworkLibraryTest.java",
202    "javatests/src/org/chromium/net/AndroidProxyConfigServiceTestUtil.java",
203    "javatests/src/org/chromium/net/AndroidProxySelectorTest.java",
204    "javatests/src/org/chromium/net/HttpUtilTest.java",
205    "javatests/src/org/chromium/net/MimeTypeFilterTest.java",
206    "javatests/src/org/chromium/net/NetErrorsTest.java",
207    "javatests/src/org/chromium/net/NetworkChangeNotifierNoNativeTest.java",
208    "javatests/src/org/chromium/net/NetworkChangeNotifierTest.java",
209    "javatests/src/org/chromium/net/ProxyChangeListenerTest.java",
210    "javatests/src/org/chromium/net/X509UtilTest.java",
211  ]
212  srcjar_deps = [ ":net_tests_jni" ]
213  deps = [
214    ":net_java",
215    ":net_java_test_support",
216    "//base:base_java",
217    "//base:base_java_test_support",
218    "//third_party/android_sdk:android_test_mock_java",
219    "//third_party/androidx:androidx_test_monitor_java",
220    "//third_party/androidx:androidx_test_rules_java",
221    "//third_party/androidx:androidx_test_runner_java",
222    "//third_party/jni_zero:jni_zero_java",
223    "//third_party/junit",
224    "//third_party/mockito:mockito_java",
225  ]
226}
227
228java_cpp_template("net_errors_java") {
229  sources = [ "java/NetError.template" ]
230  inputs = [ "../base/net_error_list.h" ]
231}
232
233java_cpp_enum("net_java_test_support_enums_srcjar") {
234  sources = [
235    "../test/embedded_test_server/embedded_test_server.h",
236    "../test/url_request/url_request_failed_job.h",
237  ]
238}
239
240java_cpp_enum("net_android_java_enums_srcjar") {
241  sources = [
242    "../base/network_change_notifier.h",
243    "../socket/socket_tag.cc",
244    "cert_verify_result_android.h",
245    "keystore.h",
246    "network_change_notifier_android.cc",
247    "traffic_stats.cc",
248  ]
249}
250
251robolectric_binary("net_junit_tests") {
252  sources = [
253    "junit/src/org/chromium/net/HttpNegotiateAuthenticatorTest.java",
254    "junit/src/org/chromium/net/NetworkTrafficAnnotationTagTest.java",
255  ]
256  deps = [
257    ":net_java",
258    "//base:base_java",
259    "//base:base_java_test_support",
260    "//base:base_junit_test_support",
261    "//third_party/hamcrest:hamcrest_java",
262    "//third_party/jni_zero:jni_zero_java",
263  ]
264}
265