Files
lawnchair/tests/Android.bp
Jordan Silva 4afa195b5b Add Jetpack Compose for Launcher3 and Quickstep behind a build flag (2/3)
This CL adds a Soong build flag in Android.bp files to enable Compose code when building Launcher.
The flag is disabled by default, and it will be enabled once agreed with the System Health team. More details in go/launcher-enabling-compose-next-steps.

To turn this flag on, one simply has to `build-flag set RELEASE_ENABLE_COMPOSE_IN_LAUNCHER true` before compiling.

- When the flag is enabled, Launcher3 will use a ComposeFacade object that provides features implemented using Compose. This Facade also provides a function to check whether Compose is enabled or not.
- When the flag is disabled, Launcher3 will implement a ComposeFacade object that throws an exception if a feature using Compose is requested. Thus, it is important to always check isComposableAvailable function before requesting a Compose feature.

Bug: 346288480
Test: Builds
Flag: EXEMPT Build flag: RELEASE_ENABLE_COMPOSE_IN_LAUNCHER
Change-Id: I5f2703f74960aeb104d0386ed3ef49784ed85234
2024-08-06 18:47:22 +01:00

232 lines
6.9 KiB
Plaintext

// Copyright (C) 2021 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
default_applicable_licenses: ["Android-Apache-2.0"],
}
// Source code used for test
filegroup {
name: "launcher-tests-src",
srcs: [
"src/**/*.java",
"src/**/*.kt",
"multivalentTests/src/**/*.java",
"multivalentTests/src/**/*.kt",
],
exclude_srcs: [
":launcher-non-quickstep-tests-src",
],
}
filegroup {
name: "launcher3-robo-src",
// multivalentTests directory is a shared folder for not only robolectric converted test
// classes but also shared helper classes.
srcs: [
"multivalentTests/src/**/*.java",
"multivalentTests/src/**/*.kt",
"src_deviceless/**/*.java",
"src_deviceless/**/*.kt",
],
}
// Source code used for non-quickstep tests
filegroup {
name: "launcher-non-quickstep-tests-src",
srcs: [
"src/com/android/launcher3/nonquickstep/**/*.java",
"src/com/android/launcher3/nonquickstep/**/*.kt",
],
}
// Source code used for oop test helpers
filegroup {
name: "launcher-oop-tests-src",
srcs: [
":launcher-testing-helpers",
"src/com/android/launcher3/allapps/TaplOpenCloseAllAppsTest.java",
"src/com/android/launcher3/allapps/TaplAllAppsIconsWorkingTest.java",
"src/com/android/launcher3/appiconmenu/TaplAppIconMenuTest.java",
"src/com/android/launcher3/dragging/TaplDragTest.java",
"src/com/android/launcher3/dragging/TaplUninstallRemoveTest.java",
"src/com/android/launcher3/ui/TaplTestsLauncher3Test.java",
"src/com/android/launcher3/ui/widget/TaplWidgetPickerTest.java",
"src/com/android/launcher3/ui/workspace/TaplWorkspaceTest.java",
],
}
// Library with all the dependencies for building quickstep
android_library {
name: "Launcher3TestLib",
defaults: [
"launcher_compose_tests_defaults",
],
srcs: [],
asset_dirs: ["assets"],
resource_dirs: ["res"],
static_libs: [
"flag-junit-base",
"launcher-aosp-tapl",
"androidx.test.core",
"androidx.test.runner",
"androidx.test.rules",
"androidx.test.ext.junit",
"androidx.test.espresso.core",
"androidx.test.espresso.contrib",
"androidx.test.espresso.intents",
"androidx.test.uiautomator_uiautomator",
"mockito-kotlin2",
"mockito-target-extended-minus-junit4",
"launcher_log_protos_lite",
"truth",
"kotlinx_coroutines_test",
"platform-test-rules",
"testables",
"com_android_launcher3_flags_lib",
"com_android_wm_shell_flags_lib",
"android.appwidget.flags-aconfig-java",
],
manifest: "AndroidManifest-common.xml",
platform_apis: true,
// TODO(b/319712088): re-enable use_resource_processor
use_resource_processor: false,
}
android_library {
name: "Launcher3TestResources",
resource_dirs: ["res"],
asset_dirs: ["assets"],
// TODO(b/319712088): re-enable use_resource_processor
use_resource_processor: false,
}
android_test {
name: "Launcher3Tests",
defaults: [
"launcher_compose_tests_defaults",
],
srcs: [
":launcher-tests-src",
":launcher-non-quickstep-tests-src",
],
static_libs: [
"Launcher3TestLib",
"com_android_launcher3_flags_lib",
],
libs: [
"android.test.base",
"android.test.runner",
"android.test.mock",
],
// Libraries used by mockito inline extended
jni_libs: [
"libdexmakerjvmtiagent",
"libstaticjvmtiagent",
],
use_embedded_native_libs: false,
compile_multilib: "both",
instrumentation_for: "Launcher3",
manifest: "AndroidManifest.xml",
platform_apis: true,
test_config: "Launcher3Tests.xml",
data: [":Launcher3"],
test_suites: ["general-tests"],
}
// Shared between tests and launcher
android_library {
name: "launcher-testing-shared",
srcs: [
"multivalentTests/shared/com/android/launcher3/testing/shared/**/*.java",
"multivalentTests/shared/com/android/launcher3/testing/shared/**/*.kt",
],
resource_dirs: [],
manifest: "multivalentTests/shared/AndroidManifest.xml",
sdk_version: "current",
min_sdk_version: min_launcher3_sdk_version,
}
filegroup {
name: "launcher-testing-helpers",
srcs: [
"src/**/*.java",
"src/**/*.kt",
"multivalentTests/src/**/*.java",
"multivalentTests/src/**/*.kt",
"src/com/android/launcher3/ui/AbstractLauncherUiTest.java",
"tapl/com/android/launcher3/tapl/*.java",
"tapl/com/android/launcher3/tapl/*.kt",
],
exclude_srcs: [
// Test classes
"src/**/*Test.java",
"src/**/*Test.kt",
"multivalentTests/src/**/*Test.java",
"multivalentTests/src/**/*Test.kt",
],
}
android_robolectric_test {
enabled: true,
name: "Launcher3RoboTests",
srcs: [
":launcher3-robo-src",
// Test util classes
":launcher-testing-helpers",
":launcher-testing-shared",
],
exclude_srcs: [
//"src/com/android/launcher3/util/CellContentDimensionsTest.kt", // Failing - b/316553889
// requires modification to work with inline mock maker
"src/com/android/launcher3/util/rule/StaticMockitoRule.java",
],
java_resource_dirs: ["config"],
static_libs: [
"flag-junit-base",
"flag-junit",
"com_android_launcher3_flags_lib",
"com_android_wm_shell_flags_lib",
"androidx.test.uiautomator_uiautomator",
"androidx.core_core-animation-testing",
"androidx.test.ext.junit",
"androidx.test.espresso.core",
"androidx.test.espresso.contrib",
"androidx.test.espresso.intents",
"androidx.test.rules",
"uiautomator-helpers",
"inline-mockito-robolectric-prebuilt",
"mockito-kotlin-nodeps",
"platform-parametric-runner-lib",
"platform-test-rules-deviceless",
"testables",
"Launcher3TestResources",
"SystemUISharedLib",
"launcher-testing-shared",
"android.appwidget.flags-aconfig-java",
],
libs: [
"android.test.runner",
"android.test.base",
"android.test.mock",
"truth",
],
instrumentation_for: "Launcher3",
upstream: true,
strict_mode: false,
}