1// Copyright (C) 2023 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
19filegroup {
20    name: "adservices-test-utility-sources",
21    srcs: [
22        "java/**/*.java",
23    ],
24    exclude_srcs: [
25        "java/com/android/adservices/mockito/*.java",
26    ],
27    path: "java",
28    visibility: [
29        "//packages/modules/AdServices:__subpackages__",
30    ],
31}
32
33// Java classes that are used by both device-side and host-side tests
34filegroup {
35    name: "adservices-test-utility-sideless-sources",
36    srcs: [
37        "side-less/**/*.java",
38    ],
39    path: "side-less",
40    visibility: [
41        ":__pkg__",
42    ],
43}
44
45android_library {
46    name: "adservices-test-utility",
47    sdk_version: "module_current",
48    // this test util needs to be used for the RVC-specific tests
49    min_sdk_version: "30",
50    srcs: [
51        ":adservices-test-utility-sideless-sources",
52        ":adservices-test-utility-sources",
53        ":adservices-service-core-phflags-sources",
54        // TODO(b/345219434): should use java-defaults instead of manually including
55        // the 2 sources below
56        ":adservices-extended-mockito-rule-sources",
57        ":adservices-shared-extended-mockito-rule-sources",
58    ],
59    libs: [
60        "error_prone_annotations",
61        "framework-adservices-lib",
62        "framework-annotations-lib",
63        "framework-configinfrastructure.stubs.module_lib",
64        "junit",
65    ],
66    static_libs: [
67        "auto_value_annotations",
68        // TODO(b/338132355): Clean up dependencies for adservices-test-utility.
69        "adservices-service-core",
70        "adservices-shared-mockito-expectations", // TODO(b/338132355): should not be needed if mocker is split
71        "adservices-shared-testing",
72        "androidx.test.runner",
73        "compatibility-device-util-axt",
74        "modules-utils-preconditions",
75        "adservices-shared-util", // For checkState method uses varargs.
76        "adservices-clients",
77        // TODO(b/345219434): remove dependency below (and/or replace it by
78        // modules-utils-extended-mockito-rule) and move it to test projects
79        // instead (as it's only needed by tests that uses the static fixture)
80        "modules-utils-testable-device-config",
81        // TODO(b/345219434): should use java-defaults instead of manually including
82        "adservices-shared-static-class-checker",
83    ],
84    apex_available: [
85        "com.android.adservices",
86        "com.android.extservices",
87    ],
88    visibility: [
89        "//packages/modules/AdServices:__subpackages__",
90        "//vendor:__subpackages__", // used by some integration tests
91    ],
92    lint: {
93        extra_check_modules: ["AdServicesTestLintChecker"],
94    },
95    plugins: ["auto_annotation_plugin"],
96}
97
98java_library_host {
99    name: "adservices-host-side-test-utility",
100    srcs: [
101        "host-side/**/*.java",
102        ":adservices-service-core-flags-constants-sources",
103        ":adservices-test-utility-sideless-sources",
104    ],
105    static_libs: [
106        "compatibility-host-util",
107        "adservices-shared-hostside-testing",
108    ],
109    libs: [
110        "tradefed",
111        "framework-annotations-lib",
112    ],
113}
114
115// TODO(b/338132355): remove / split / create new lib for expectations
116filegroup {
117    name: "adservices-extended-mockito-rule-sources",
118    srcs: [
119        // Non-static - interface and implementation
120        "java/com/android/adservices/mockito/AdServicesPragmaticMocker.java",
121        "java/com/android/adservices/mockito/AdServicesMockitoMocker.java",
122        // Static - interface and implementation
123        "java/com/android/adservices/mockito/AdServicesStaticMocker.java",
124        "java/com/android/adservices/mockito/AdServicesExtendedMockitoMocker.java",
125        // Job-related - interface and implementation
126        "java/com/android/adservices/mockito/AdServicesJobMocker.java",
127        // ... and implementation
128        "java/com/android/adservices/mockito/AdServicesMockitoJobMocker.java",
129        // Flags-related - interface and implementation
130        "java/com/android/adservices/mockito/AdServicesFlagsMocker.java",
131        "java/com/android/adservices/mockito/AdServicesDebugFlagsMocker.java",
132        // ... and implementation
133        "java/com/android/adservices/mockito/AdServicesMockitoFlagsMocker.java",
134        "java/com/android/adservices/mockito/AdServicesMockitoDebugFlagsMocker.java",
135    ],
136    path: "java",
137    visibility: [
138        "//packages/modules/AdServices:__subpackages__",
139    ],
140}
141
142java_defaults {
143    name: "adservices-extended-mockito-defaults",
144    srcs: [
145        ":adservices-extended-mockito-rule-sources",
146    ],
147    defaults: ["adservices-shared-extended-mockito-defaults"],
148    static_libs: [
149        "adservices-service-core",
150        "modules-utils-testable-device-config", // For TestableDeviceConfig
151    ],
152    visibility: [
153        "//packages/modules/AdServices:__subpackages__",
154    ],
155}
156