1//
2// Copyright (C) 2008 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16package {
17    default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
20android_test {
21    name: "CtsPermissionTestCases",
22    defaults: [
23        "cts_defaults",
24        "mts-target-sdk-version-current",
25    ],
26    min_sdk_version: "30",
27    // Tag this module as a cts test artifact
28    test_suites: [
29        "cts",
30        "general-tests",
31        "sts",
32        "mts-permission",
33    ],
34    // Include both the 32 and 64 bit versions
35    compile_multilib: "both",
36    static_libs: [
37        "ctstestrunner-axt",
38        "guava",
39        "android-ex-camera2",
40        "compatibility-device-util-axt",
41        "truth",
42        "androidx.annotation_annotation",
43        "platformprotosnano",
44        "permission-test-util-lib",
45        "nativetesthelper",
46        // TODO(b/175251166): remove once Android migrates to JUnit 4.12,
47        // which provides assertThrows
48        "testng",
49        "bluetooth-test-util-lib",
50        "CtsAccessibilityCommon",
51        "safety-center-internal-data",
52        "sts-device-util",
53        "platform-test-rules",
54        "CtsVirtualDeviceCommonLib",
55        "android.permission.flags-aconfig-java-export",
56        "androidx.test.rules",
57    ],
58    jni_libs: [
59        "libctspermission_jni",
60        "libpermissionmanager_native_test",
61        "libnativehelper_compat_libc++",
62    ],
63    srcs: [
64        "src/**/*.java",
65        "src/**/*.aidl",
66        "src/**/*.kt",
67    ],
68    sdk_version: "test_current",
69    libs: [
70        "android.test.runner.stubs.test",
71        "android.test.base.stubs.test",
72    ],
73    data: [
74        ":AppThatDefinesUndefinedPermissionGroupElement",
75        ":AppThatDoesNotHaveBgLocationAccess",
76        ":CtsAdversarialPermissionDefinerApp",
77        ":CtsAdversarialPermissionUserApp",
78        ":CtsAppThatAccessesLocationOnCommand",
79        ":CtsAppThatAlsoDefinesPermissionA",
80        ":CtsAppThatAlsoDefinesPermissionADifferentCert",
81        ":CtsAppThatAlsoDefinesPermissionGroupADifferentCert",
82        ":CtsAppThatAlsoDefinesPermissionGroupADifferentCert30",
83        ":CtsAppThatDefinesPermissionA",
84        ":CtsAppThatDefinesPermissionInPlatformGroup",
85        ":CtsAppThatDefinesPermissionWithInvalidGroup",
86        ":CtsAppThatDefinesPermissionWithInvalidGroup30",
87        ":CtsAppThatHasNotificationListener",
88        ":CtsAppThatRequestsBluetoothPermission30",
89        ":CtsAppThatRequestsCalendarContactsBodySensorCustomPermission",
90        ":CtsAppThatRequestsBluetoothPermission31",
91        ":CtsAppThatRequestsBluetoothPermissionNeverForLocation31",
92        ":CtsAppThatRequestsContactsAndCallLogPermission16",
93        ":CtsAppThatRequestsContactsPermission15",
94        ":CtsAppThatRequestsContactsPermission16",
95        ":CtsAppThatRequestsLocationAndBackgroundPermission28",
96        ":CtsAppThatRequestsLocationAndBackgroundPermission29",
97        ":CtsAppThatRequestsBluetoothPermissionNeverForLocationNoProvider",
98        ":CtsAppThatRequestsLocationPermission22",
99        ":CtsAppThatRequestsLocationPermission28",
100        ":CtsAppThatRequestsLocationPermission29",
101        ":CtsAppThatRequestsLocationPermission29v4",
102        ":CtsAppThatRequestsOneTimePermission",
103        ":CtsAppThatRequestsPermissionAandB",
104        ":CtsAppThatRequestsPermissionAandC",
105        ":CtsAppThatRequestsStoragePermission22",
106        ":CtsAppThatRequestsStoragePermission28",
107        ":CtsAppThatRequestsStoragePermission29",
108        ":CtsAppThatRunsRationaleTests",
109        ":CtsAppToTestRevokeSelfPermission",
110        ":CtsAppWithSharedUidThatRequestsLocationPermission28",
111        ":CtsAppWithSharedUidThatRequestsLocationPermission29",
112        ":CtsAppWithSharedUidThatRequestsNoPermissions",
113        ":CtsAppWithSharedUidThatRequestsPermissions",
114        ":CtsInstallPermissionDefinerApp",
115        ":CtsInstallPermissionEscalatorApp",
116        ":CtsInstallPermissionUserApp",
117        ":CtsRuntimePermissionDefinerApp",
118        ":CtsRuntimePermissionUserApp",
119        ":CtsStorageEscalationApp28",
120        ":CtsStorageEscalationApp29Full",
121        ":CtsStorageEscalationApp29Scoped",
122        ":CtsVictimPermissionDefinerApp",
123        ":CtsAppThatRequestsMultiplePermissionsWithMinMaxSdk",
124        ":CtsAppThatRequestsSystemAlertWindow22",
125        ":CtsAppThatRequestsSystemAlertWindow23",
126        ":CtsAppThatRequestCustomCameraPermission",
127        ":CtsAppThatRequestsDevicePermissions",
128    ],
129    per_testcase_directory: true,
130}
131
132test_module_config {
133    name: "CtsPermissionTestCases_Platform",
134    base: "CtsPermissionTestCases",
135    test_suites: ["general-tests"],
136    include_filters: [
137        "android.permission.cts.BackgroundPermissionsTest",
138        "android.permission.cts.PermissionControllerTest",
139        "android.permission.cts.PermissionFlagsTest",
140        "android.permission.cts.RuntimePermissionPresentationInfoTest",
141        "android.permission.cts.SharedUidPermissionsTest",
142        "android.permission.cts.SplitPermissionTest",
143    ],
144}
145
146test_module_config {
147    name: "CtsPermissionTestCases_PermissionController",
148    base: "CtsPermissionTestCases",
149    test_suites: ["general-tests"],
150    include_filters: [
151        "android.permission.cts.BackgroundPermissionsTest",
152        "android.permission.cts.LocationAccessCheckTest",
153        "android.permission.cts.NotificationListenerCheckTest",
154        "android.permission.cts.OneTimePermissionTest",
155        "android.permission.cts.PermissionControllerTest",
156        "android.permission.cts.PlatformPermissionGroupMappingTest",
157    ],
158}
159
160test_module_config {
161    name: "CtsPermissionTestCases_PrivacySources",
162    base: "CtsPermissionTestCases",
163    test_suites: ["general-tests"],
164    include_filters: [
165        "android.permission.cts.AccessibilityPrivacySourceTest",
166        "android.permission.cts.NotificationListenerCheckTest",
167    ],
168}
169