// // Copyright (C) 2020 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package { default_team: "trendy_team_android_permissions", // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "packages_modules_Permission_PermissionController_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: [ "packages_modules_Permission_PermissionController_license", ], } android_test { name: "PermissionControllerMockingTests", sdk_version: "system_current", target_sdk_version: "30", min_sdk_version: "30", resource_dirs: [ "test_res", ], srcs: [ "src/**/*.kt", ], libs: [ "android.test.base.stubs.system", "android.test.runner.stubs.system", "safety-center-annotations", ], static_libs: [ "PermissionController-lib", "androidx.lifecycle_lifecycle-extensions", // The PermissionController build file includes android.car-stubs in its libs dependency // and that works since the phone code does not initialize any classes with a android.car // dependency at runtime. If it did, the class loading would throw an exception. The "libs" // usage in the main module means that the dependency is loaded from the device, instead of // being statically included, which helps avoid apk bloat and conflicting dependencies. // To use just one test target, without any form-factor-specific configuration, we need to // statically include this car dependency. Otherwise running these unit tests against a // phone will cause the tests to fail due to an initialization exception for unfound car // dependency classes. Here we use the android.car target instead of android.car-stubs so // that we can utilize some data classes within the car dependency. If all dependencies were // mocked, then the stubs dependency would be suitable. Note that on Auto device the boot // class path will always override the static dependency. "android.car", "android.permission.flags-aconfig-java-export", "com.android.permission.flags-aconfig-java-export", "platform-test-annotations", "flag-junit", "androidx.test.rules", "androidx.test.ext.truth", "androidx.test.ext.junit", "kotlinx_coroutines_test", "mockito-target-extended-minus-junit4", ], jni_libs: [ "libdexmakerjvmtiagent", "libstaticjvmtiagent", ], compile_multilib: "both", test_suites: [ "device-tests", "mts-permission", ], kotlincflags: ["-Xjvm-default=all"], // TODO(b/313706381): Remove jarjar once flagging lib is fixed jarjar_rules: ":PermissionController-jarjar-rules", }