// // 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 { // 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: [ "main_res", "test_res", ], srcs: [ ":permissioncontroller-sources", "src/**/*.kt", ], libs: [ "android.test.base", "android.test.runner", "safety-center-annotations", ], static_libs: [ "iconloader_sc_mainline_prod", "com.google.android.material_material", "androidx.transition_transition", "androidx-constraintlayout_constraintlayout", "androidx.core_core", "androidx.media_media", "androidx.legacy_legacy-support-core-utils", "androidx.legacy_legacy-support-core-ui", "androidx.fragment_fragment", "androidx.appcompat_appcompat", "androidx.preference_preference", "androidx.recyclerview_recyclerview", "androidx.legacy_legacy-preference-v14", "androidx.leanback_leanback", "androidx.leanback_leanback-preference", "androidx.lifecycle_lifecycle-extensions", "androidx.lifecycle_lifecycle-common-java8", "kotlin-stdlib", "kotlinx-coroutines-android", "androidx.navigation_navigation-common-ktx", "androidx.navigation_navigation-fragment-ktx", "androidx.navigation_navigation-runtime-ktx", "androidx.navigation_navigation-ui-ktx", "SettingsLibHelpUtils", "SettingsLibRestrictedLockUtils", "SettingsLibAppPreference", "SettingsLibSearchWidget", "SettingsLibLayoutPreference", "SettingsLibBarChartPreference", "SettingsLibActionBarShadow", "SettingsLibProgressBar", "SettingsLibCollapsingToolbarBaseActivity", "SettingsLibSettingsTheme", "SettingsLibFooterPreference", "SettingsLibSelectorWithWidgetPreference", "SettingsLibTwoTargetPreference", "SettingsLibActivityEmbedding", "SettingsLibIllustrationPreference", "androidx.annotation_annotation", "permissioncontroller-statsd", // 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", "car-ui-lib", "libprotobuf-java-lite", "SettingsLibUtils", "modules-utils-build_system", "safety-center-internal-data", "safety-center-pending-intents", "safety-center-resources-lib", "safety-label", "role-controller", "lottie", "androidx.test.rules", "androidx.test.ext.truth", "androidx.test.ext.junit", "kotlinx_coroutines_test", "mockito-target-extended-minus-junit4", ], proto: { type: "lite", include_dirs: ["packages/modules/Permission/PermissionController/src/com/android/permissioncontroller"], }, jni_libs: [ "libdexmakerjvmtiagent", "libstaticjvmtiagent", ], compile_multilib: "both", aaptflags: ["--custom-package com.android.permissioncontroller"], test_suites: [ "device-tests", "mts-permission", ], kotlincflags: ["-Xjvm-default=enable"], }