1// Copyright (C) 2024 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_applicable_licenses: ["Android-Apache-2.0"],
17}
18
19java_library {
20    name: "adservices-shared-testing",
21    min_sdk_version: "30",
22    sdk_version: "module_current",
23    srcs: [
24        "java/com/android/adservices/shared/testing/**/*.java",
25        ":adservices-shared-sideless-testing-sources",
26    ],
27    static_libs: [
28        // TODO(b/345219434): use defaults instead?
29        "mockito-target-extended-minus-junit4",
30        "adservices-shared-common",
31        "adservices-shared-util",
32        "androidx.test.core",
33        "framework-annotations-lib", // @VisibleForTesting
34        "junit",
35        "ravenwood-junit",
36        "truth",
37    ],
38    libs: [
39        "framework-connectivity.stubs.module_lib",
40    ],
41    visibility: [
42        "//packages/modules/AdServices:__subpackages__",
43        "//packages/modules/ExtServices:__subpackages__",
44        "//packages/modules/OnDevicePersonalization:__subpackages__",
45    ],
46    apex_available: [
47        "com.android.adservices",
48        "com.android.extservices",
49        "com.android.ondevicepersonalization",
50    ],
51    lint: {
52        extra_check_modules: ["AdServicesProdLintChecker"],
53    },
54}
55
56java_library {
57    name: "adservices-shared-static-class-checker",
58    min_sdk_version: "30",
59    sdk_version: "module_current",
60    srcs: [
61        "java/com/android/adservices/mockito/StaticClassChecker.java",
62        ":adservices-shared-sideless-testing-TestNamer-sources",
63    ],
64    static_libs: [
65        "guava", // for ImmutableSet
66    ],
67    visibility: [
68        "//packages/modules/AdServices:__subpackages__",
69        "//packages/modules/ExtServices:__subpackages__",
70        "//packages/modules/OnDevicePersonalization:__subpackages__",
71    ],
72    lint: {
73        extra_check_modules: ["AdServicesProdLintChecker"],
74    },
75}
76
77java_library {
78    name: "adservices-shared-mockito-expectations",
79    min_sdk_version: "30",
80    sdk_version: "module_current",
81    srcs: [
82        // TODO(b/338132355): might be better to split into separate mockers:
83
84        // Base classes
85        "java/com/android/adservices/mockito/AbstractMocker.java",
86        "java/com/android/adservices/mockito/AbstractStaticMocker.java",
87        "java/com/android/adservices/mockito/StaticClassChecker.java",
88
89        // AndroidMocker
90        "java/com/android/adservices/mockito/AndroidMocker.java",
91        "java/com/android/adservices/mockito/AndroidMockitoMocker.java",
92
93        // AndroidStaticMocker
94        "java/com/android/adservices/mockito/AndroidStaticMocker.java",
95        "java/com/android/adservices/mockito/AndroidExtendedMockitoMocker.java",
96        "java/com/android/adservices/mockito/LogInterceptor.java",
97
98        // SharedMocker
99        "java/com/android/adservices/mockito/SharedMocker.java",
100        "java/com/android/adservices/mockito/SharedMockitoMocker.java",
101    ],
102    libs: [
103        "framework-annotations-lib", // for @Nullable
104    ],
105    static_libs: [
106        "adservices-shared-static-class-checker",
107        "error_prone_annotations", // for @FormatMethod
108        "modules-utils-build", // for SdkLevel
109        "mockito-target-extended-minus-junit4",
110        "modules-utils-preconditions",
111
112        // TODO(b/338132355): might be better to split into separate mockers
113
114        // Need by SharedMocker.java
115        "adservices-shared-common",
116        "adservices-shared-spe",
117        "adservices-shared-testing",
118
119        // Need by AndroidStaticMocker.java
120        // "adservices-shared-testing",
121    ],
122    visibility: [
123        "//packages/modules/AdServices:__subpackages__",
124        "//packages/modules/ExtServices:__subpackages__",
125        "//packages/modules/OnDevicePersonalization:__subpackages__",
126    ],
127    apex_available: [
128        "com.android.adservices",
129        "com.android.extservices",
130        "com.android.ondevicepersonalization",
131    ],
132    lint: {
133        extra_check_modules: ["AdServicesProdLintChecker"],
134    },
135}
136
137filegroup {
138    name: "adservices-shared-extended-mockito-rule-sources",
139    srcs: [
140        "java/com/android/adservices/mockito/AdServicesExtendedMockitoRule.java",
141        "java/com/android/adservices/mockito/ExtendedMockitoInlineCleanerRule.java",
142    ],
143    path: "java",
144    visibility: [
145        "//packages/modules/AdServices:__subpackages__",
146        "//packages/modules/ExtServices:__subpackages__",
147        "//packages/modules/OnDevicePersonalization:__subpackages__",
148    ],
149}
150
151// NOTE: it does not include TestableDeviceConfig
152java_defaults {
153    name: "adservices-shared-extended-mockito-defaults",
154    srcs: [
155        ":adservices-shared-extended-mockito-rule-sources",
156    ],
157    static_libs: [
158        "adservices-shared-static-class-checker",
159    ],
160    // TODO(b/345219434): change it back to
161    // modules-utils-extended-mockito-rule-defaults once it have
162    // compile_multilib: "both",
163    defaults: ["modules-utils-testable-device-config-defaults"],
164    visibility: [
165        "//packages/modules/AdServices:__subpackages__",
166        "//packages/modules/ExtServices:__subpackages__",
167        "//packages/modules/OnDevicePersonalization:__subpackages__",
168    ],
169}
170
171// Note: This lib contains an example for datastore usage which is used for testing the proto data
172// store. This should be not added as a production code dependency.
173java_library {
174    name: "adservices-datastore_testing",
175    sdk_version: "module_current",
176    proto: {
177        type: "lite",
178        include_dirs: [
179            "external/protobuf/java",
180            "external/protobuf/src",
181        ],
182        canonical_path_from_root: false, // Use relative path instead of Android root
183    },
184    srcs: [
185        "java/com/android/adservices/shared/datastore_testing/*.java",
186        "java/com/android/adservices/shared/datastore_testing/*.proto",
187        ":libprotobuf-internal-protos",
188    ],
189    static_libs: [
190        "adservices-shared-common",
191        "adservices-shared-datastore",
192    ],
193    visibility: [
194        "//packages/modules/AdServices/shared/tests:__subpackages__",
195    ],
196    lint: {
197        extra_check_modules: ["AdServicesProdLintChecker"],
198    },
199}
200
201// Shared test classes used to test shared test classes - Malkovich!
202filegroup {
203    name: "adservices-shared-device-side-meta-testing-sources",
204    srcs: [
205        "java/com/android/adservices/shared/meta_testing/**/*.java",
206    ],
207    visibility: [
208        "//packages/modules/AdServices/shared/tests:__subpackages__",
209        // Explicitly add each package below - don't use __subpackages__
210        "//packages/modules/AdServices/adservices/tests/unittest/adservices-test-utility",
211    ],
212}
213
214// Shared test classes used to test shared test classes - Malkovich!
215filegroup {
216    name: "adservices-shared-device-side-flags-meta-testing-sources",
217    srcs: [
218        "java/com/android/adservices/shared/meta_testing/FlagsTestLittleHelper.java",
219    ],
220    visibility: [
221        "//packages/modules/AdServices/shared/tests:__subpackages__",
222        // Explicitly add each package below - don't use __subpackages__
223        "//packages/modules/AdServices/adservices/tests/unittest/service-core",
224    ],
225}
226