# Copyright (C) 2020 The Dagger Authors. # # 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. # Description: # Tests for internal code for implementing Hilt processors. load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_android_library") package(default_visibility = ["//:src"]) # Checks that multiple test roots can be compiled together. This library # only compiles the sources. they are tested in the android_local_tests. android_library( name = "multi_test_root_tests", srcs = [ "ActivityScenarioRuleTest.java", "CustomTestApplicationTest.java", "MultiTestRoot1Test.java", "MultiTestRoot2Test.java", "MultiTestRootExternalModules.java", ], exports_manifest = 1, manifest = "AndroidManifest.xml", deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:bind_value", "//java/dagger/hilt/android/testing:custom_test_application", "//java/dagger/hilt/android/testing:hilt_android_test", "//java/dagger/hilt/android/testing:uninstall_modules", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_test_core", "@maven//:androidx_test_ext_junit", "@maven//:junit_junit", "@maven//:org_robolectric_robolectric", ], ) android_local_test( name = "ActivityScenarioRuleTest", manifest_values = { "minSdkVersion": "14", }, deps = [ ":multi_test_root_tests", ], ) android_local_test( name = "CustomTestApplicationTest", manifest_values = { "minSdkVersion": "14", }, deps = [ ":multi_test_root_tests", ], ) android_local_test( name = "MultiTestRoot1Test", manifest_values = { "minSdkVersion": "14", }, deps = [ ":multi_test_root_tests", ], ) android_local_test( name = "MultiTestRoot2Test", manifest_values = { "minSdkVersion": "14", }, deps = [ ":multi_test_root_tests", ], ) android_local_test( name = "EarlyEntryPointHiltAndroidAppRuntimeTest", size = "small", srcs = ["EarlyEntryPointHiltAndroidAppRuntimeTest.java"], manifest_values = { "minSdkVersion": "14", }, deps = [ ":EarlyEntryPointHiltAndroidAppRuntimeClasses", "//:android_local_test_exports", "//java/dagger/hilt:entry_point", "//java/dagger/hilt/android:early_entry_point", "//java/dagger/hilt/android:package_info", "@google_bazel_common//third_party/java/truth", "@maven//:junit_junit", ], ) android_library( name = "EarlyEntryPointHiltAndroidAppRuntimeClasses", srcs = ["EarlyEntryPointHiltAndroidAppRuntimeClasses.java"], deps = [ "//java/dagger/hilt:entry_point", "//java/dagger/hilt/android:early_entry_point", "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android:package_info", ], ) android_local_test( name = "EarlyEntryPointHiltAndroidTestRuntimeTest", size = "small", srcs = [ "EarlyEntryPointHiltAndroidTestRuntimeClasses.java", "EarlyEntryPointHiltAndroidTestRuntimeTest.java", ], manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:define_component", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:early_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/truth", ], ) android_local_test( name = "EarlyEntryPointCustomApplicationTest", size = "small", srcs = [ "EarlyEntryPointCustomApplicationClasses.java", "EarlyEntryPointCustomApplicationTest.java", ], manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:early_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:custom_test_application", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/truth", ], ) android_local_test( name = "EarlyEntryPointNoEntryPointsDefinedTest", size = "small", srcs = ["EarlyEntryPointNoEntryPointsDefinedTest.java"], manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:early_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/truth", ], ) android_local_test( name = "AndroidEntryPointBaseClassTest", size = "small", srcs = [ "AndroidEntryPointBaseClassOtherPkg.java", "AndroidEntryPointBaseClassTest.java", ], javacopts = [ # Note: Hilt's bytecode injection doesn't work in Blaze but we disable # superclass validation in this test just to verify everything builds. "-Adagger.hilt.android.internal.disableAndroidSuperclassValidation=true", # Note: Used to test base classes across java packages. "-Xep:PackageLocation:OFF", ], manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "@google_bazel_common//third_party/java/truth", ], ) android_local_test( name = "ModuleTest", srcs = ["ModuleTest.java"], manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", ], ) android_local_test( name = "InjectionTest", size = "small", srcs = ["InjectionTest.java"], manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", ], ) android_local_test( name = "InstallInObjectModuleTest", srcs = ["InstallInObjectModuleTest.java"], manifest_values = { "minSdkVersion": "14", }, deps = [ ":InstallInObjectModuleClasses", "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/junit", "@google_bazel_common//third_party/java/truth", ], ) kt_android_library( name = "InstallInObjectModuleClasses", testonly = True, srcs = ["InstallInObjectModule.kt"], deps = [ "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/components", ], ) android_local_test( name = "InternalKtModuleTest", size = "small", srcs = ["InternalKtModuleTest.java"], manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "//javatests/dagger/hilt/testmodules", "@google_bazel_common//third_party/java/truth", ], ) android_local_test( name = "DefaultViewModelFactoryTest", srcs = ["DefaultViewModelFactoryTest.java"], manifest = "AndroidManifest.xml", manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/lifecycle", "//java/dagger/hilt/android/testing:bind_value", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_activity_activity", "@maven//:androidx_fragment_fragment", "@maven//:androidx_lifecycle_lifecycle_common", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", "@maven//:junit_junit", ], ) android_local_test( name = "QualifierInKotlinFieldsTest", srcs = ["QualifierInKotlinFieldsTest.java"], manifest = "AndroidManifest.xml", manifest_values = { "minSdkVersion": "14", }, deps = [ ":QualifierInFieldsClass", "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_activity_activity", "@maven//:androidx_fragment_fragment", "@maven//:androidx_lifecycle_lifecycle_common", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", "@maven//:junit_junit", ], ) kt_android_library( name = "QualifierInFieldsClass", testonly = True, srcs = ["QualifierInFieldsClass.kt"], deps = [ "//:dagger_with_compiler", "//java/dagger/hilt/android/qualifiers", ], ) android_local_test( name = "ActivityRetainedClearedListenerTest", srcs = ["ActivityRetainedClearedListenerTest.java"], manifest = "AndroidManifest.xml", manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:activity_retained_lifecycle", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_activity_activity", "@maven//:androidx_fragment_fragment", "@maven//:androidx_lifecycle_lifecycle_common", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", "@maven//:junit_junit", ], ) android_local_test( name = "ActivityInjectedViewModelTest", srcs = ["ActivityInjectedViewModelTest.java"], manifest = "AndroidManifest.xml", manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_activity_activity", "@maven//:androidx_fragment_fragment", "@maven//:androidx_lifecycle_lifecycle_common", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", "@maven//:junit_junit", ], ) android_local_test( name = "ViewModelScopedTest", srcs = ["ViewModelScopedTest.java"], manifest = "AndroidManifest.xml", manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/lifecycle", "//java/dagger/hilt/android/scopes", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_activity_activity", "@maven//:androidx_fragment_fragment", "@maven//:androidx_lifecycle_lifecycle_common", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", "@maven//:junit_junit", ], ) android_local_test( name = "ViewModelWithBaseTest", srcs = ["ViewModelWithBaseTest.java"], manifest = "AndroidManifest.xml", manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/lifecycle", "//java/dagger/hilt/android/testing:hilt_android_test", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_activity_activity", "@maven//:androidx_fragment_fragment", "@maven//:androidx_lifecycle_lifecycle_common", "@maven//:androidx_lifecycle_lifecycle_viewmodel", "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", "@maven//:junit_junit", ], ) android_local_test( name = "ActivityInjectedSavedStateViewModelTest", srcs = ["ActivityInjectedSavedStateViewModelTest.java"], manifest = "AndroidManifest.xml", manifest_values = { "minSdkVersion": "14", }, deps = [ "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:hilt_android_test", "//java/dagger/internal/guava:base-android", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:junit_junit", ], ) android_library( name = "uses_component_common", srcs = [ "UsesComponentHelper.java", "UsesComponentTestClasses.java", ], deps = [ "//:dagger_with_compiler", "//java/dagger/hilt:define_component", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android/components", "@google_bazel_common//third_party/java/jsr330_inject", ], ) # This has to be split into a separate target in order to avoid # being compiled as "test bindings" in the compilation unit of # the test class itself. android_library( name = "uses_component_test_module", srcs = ["UsesComponentTestModule.java"], deps = [ ":uses_component_common", "//:dagger_with_compiler", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android/components", ], ) android_library( name = "shared_component_test_classes", srcs = [ "UsesLocalComponentTestBindingsTest.java", "UsesLocalComponentUninstallModuleTest.java", "UsesSharedComponent1Test.java", "UsesSharedComponent2Test.java", "UsesSharedComponentEnclosedTest.java", "//javatests/dagger/hilt/android/testsubpackage:UsesLocalComponentTestBindingsTest.java", "//javatests/dagger/hilt/android/testsubpackage:UsesSharedComponent1Test.java", ], exports_manifest = 1, javacopts = ["-Adagger.hilt.shareTestComponents=true"], manifest = "AndroidManifest.xml", deps = [ ":uses_component_common", ":uses_component_test_module", "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:entry_point", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:android_entry_point", "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/testing:bind_value", "//java/dagger/hilt/android/testing:custom_test_application", "//java/dagger/hilt/android/testing:hilt_android_test", "//java/dagger/hilt/android/testing:uninstall_modules", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_test_core", "@maven//:androidx_test_ext_junit", "@maven//:junit_junit", "@maven//:org_robolectric_annotations", "@maven//:org_robolectric_robolectric", ], ) # Separate target that uses @TestInstallIn to replace the global binding android_library( name = "test_install_in_test_classes", srcs = [ "TestInstallInModules.java", "UsesSharedComponentTestInstallInTest.java", ], javacopts = ["-Adagger.hilt.shareTestComponents=true"], deps = [ ":uses_component_common", ":uses_component_test_module", "//:android_local_test_exports", "//:dagger_with_compiler", "//java/dagger/hilt:install_in", "//java/dagger/hilt/android:hilt_android_app", "//java/dagger/hilt/android:package_info", "//java/dagger/hilt/android/components", "//java/dagger/hilt/android/testing:bind_value", "//java/dagger/hilt/android/testing:hilt_android_test", "//java/dagger/hilt/testing:test_install_in", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/truth", "@maven//:androidx_test_core", "@maven//:androidx_test_ext_junit", "@maven//:junit_junit", "@maven//:org_robolectric_annotations", "@maven//:org_robolectric_robolectric", ], ) android_local_test( name = "UsesLocalComponentTestBindingsTest", manifest_values = { "minSdkVersion": "14", }, deps = [ ":shared_component_test_classes", ], ) android_local_test( name = "UsesLocalComponentUninstallModuleTest", manifest_values = { "minSdkVersion": "14", }, deps = [ ":shared_component_test_classes", ], ) android_local_test( name = "UsesSharedComponent1Test", manifest_values = { "minSdkVersion": "14", }, deps = [ ":shared_component_test_classes", ], ) android_local_test( name = "UsesSharedComponent2Test", manifest_values = { "minSdkVersion": "14", }, deps = [ ":shared_component_test_classes", ], ) android_local_test( name = "UsesSharedComponentEnclosedTest", manifest_values = { "minSdkVersion": "14", }, deps = [ ":shared_component_test_classes", ], ) android_local_test( name = "UsesSharedComponentTestInstallInTest", manifest_values = { "minSdkVersion": "14", }, deps = [ ":test_install_in_test_classes", ], )