1# Copyright (C) 2020 The Dagger Authors. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14# Description: 15# Tests for internal code for implementing Hilt processors. 16 17load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_android_library") 18 19package(default_visibility = ["//:src"]) 20 21# Checks that multiple test roots can be compiled together. This library 22# only compiles the sources. they are tested in the android_local_tests. 23android_library( 24 name = "multi_test_root_tests", 25 srcs = [ 26 "ActivityScenarioRuleTest.java", 27 "CustomTestApplicationTest.java", 28 "MultiTestRoot1Test.java", 29 "MultiTestRoot2Test.java", 30 "MultiTestRootExternalModules.java", 31 ], 32 exports_manifest = 1, 33 manifest = "AndroidManifest.xml", 34 deps = [ 35 "//:android_local_test_exports", 36 "//:dagger_with_compiler", 37 "//java/dagger/hilt:entry_point", 38 "//java/dagger/hilt:install_in", 39 "//java/dagger/hilt/android:android_entry_point", 40 "//java/dagger/hilt/android:package_info", 41 "//java/dagger/hilt/android/testing:bind_value", 42 "//java/dagger/hilt/android/testing:custom_test_application", 43 "//java/dagger/hilt/android/testing:hilt_android_test", 44 "//java/dagger/hilt/android/testing:uninstall_modules", 45 "@google_bazel_common//third_party/java/truth", 46 "@maven//:androidx_test_core", 47 "@maven//:androidx_test_ext_junit", 48 "@maven//:junit_junit", 49 "@maven//:org_robolectric_robolectric", 50 ], 51) 52 53android_local_test( 54 name = "ActivityScenarioRuleTest", 55 manifest_values = { 56 "minSdkVersion": "14", 57 }, 58 deps = [ 59 ":multi_test_root_tests", 60 ], 61) 62 63android_local_test( 64 name = "CustomTestApplicationTest", 65 manifest_values = { 66 "minSdkVersion": "14", 67 }, 68 deps = [ 69 ":multi_test_root_tests", 70 ], 71) 72 73android_local_test( 74 name = "MultiTestRoot1Test", 75 manifest_values = { 76 "minSdkVersion": "14", 77 }, 78 deps = [ 79 ":multi_test_root_tests", 80 ], 81) 82 83android_local_test( 84 name = "MultiTestRoot2Test", 85 manifest_values = { 86 "minSdkVersion": "14", 87 }, 88 deps = [ 89 ":multi_test_root_tests", 90 ], 91) 92 93android_local_test( 94 name = "EarlyEntryPointHiltAndroidAppRuntimeTest", 95 size = "small", 96 srcs = ["EarlyEntryPointHiltAndroidAppRuntimeTest.java"], 97 manifest_values = { 98 "minSdkVersion": "14", 99 }, 100 deps = [ 101 ":EarlyEntryPointHiltAndroidAppRuntimeClasses", 102 "//:android_local_test_exports", 103 "//java/dagger/hilt:entry_point", 104 "//java/dagger/hilt/android:early_entry_point", 105 "//java/dagger/hilt/android:package_info", 106 "@google_bazel_common//third_party/java/truth", 107 "@maven//:junit_junit", 108 ], 109) 110 111android_library( 112 name = "EarlyEntryPointHiltAndroidAppRuntimeClasses", 113 srcs = ["EarlyEntryPointHiltAndroidAppRuntimeClasses.java"], 114 deps = [ 115 "//java/dagger/hilt:entry_point", 116 "//java/dagger/hilt/android:early_entry_point", 117 "//java/dagger/hilt/android:hilt_android_app", 118 "//java/dagger/hilt/android:package_info", 119 ], 120) 121 122android_local_test( 123 name = "EarlyEntryPointHiltAndroidTestRuntimeTest", 124 size = "small", 125 srcs = [ 126 "EarlyEntryPointHiltAndroidTestRuntimeClasses.java", 127 "EarlyEntryPointHiltAndroidTestRuntimeTest.java", 128 ], 129 manifest_values = { 130 "minSdkVersion": "14", 131 }, 132 deps = [ 133 "//:android_local_test_exports", 134 "//:dagger_with_compiler", 135 "//java/dagger/hilt:define_component", 136 "//java/dagger/hilt:entry_point", 137 "//java/dagger/hilt:install_in", 138 "//java/dagger/hilt/android:early_entry_point", 139 "//java/dagger/hilt/android:package_info", 140 "//java/dagger/hilt/android/testing:hilt_android_test", 141 "@google_bazel_common//third_party/java/truth", 142 ], 143) 144 145android_local_test( 146 name = "EarlyEntryPointCustomApplicationTest", 147 size = "small", 148 srcs = [ 149 "EarlyEntryPointCustomApplicationClasses.java", 150 "EarlyEntryPointCustomApplicationTest.java", 151 ], 152 manifest_values = { 153 "minSdkVersion": "14", 154 }, 155 deps = [ 156 "//:android_local_test_exports", 157 "//:dagger_with_compiler", 158 "//java/dagger/hilt:entry_point", 159 "//java/dagger/hilt:install_in", 160 "//java/dagger/hilt/android:early_entry_point", 161 "//java/dagger/hilt/android:package_info", 162 "//java/dagger/hilt/android/testing:custom_test_application", 163 "//java/dagger/hilt/android/testing:hilt_android_test", 164 "@google_bazel_common//third_party/java/truth", 165 ], 166) 167 168android_local_test( 169 name = "EarlyEntryPointNoEntryPointsDefinedTest", 170 size = "small", 171 srcs = ["EarlyEntryPointNoEntryPointsDefinedTest.java"], 172 manifest_values = { 173 "minSdkVersion": "14", 174 }, 175 deps = [ 176 "//:android_local_test_exports", 177 "//:dagger_with_compiler", 178 "//java/dagger/hilt:entry_point", 179 "//java/dagger/hilt:install_in", 180 "//java/dagger/hilt/android:early_entry_point", 181 "//java/dagger/hilt/android:package_info", 182 "//java/dagger/hilt/android/testing:hilt_android_test", 183 "@google_bazel_common//third_party/java/truth", 184 ], 185) 186 187android_local_test( 188 name = "AndroidEntryPointBaseClassTest", 189 size = "small", 190 srcs = [ 191 "AndroidEntryPointBaseClassOtherPkg.java", 192 "AndroidEntryPointBaseClassTest.java", 193 ], 194 javacopts = [ 195 # Note: Hilt's bytecode injection doesn't work in Blaze but we disable 196 # superclass validation in this test just to verify everything builds. 197 "-Adagger.hilt.android.internal.disableAndroidSuperclassValidation=true", 198 # Note: Used to test base classes across java packages. 199 "-Xep:PackageLocation:OFF", 200 ], 201 manifest_values = { 202 "minSdkVersion": "14", 203 }, 204 deps = [ 205 "//:android_local_test_exports", 206 "//:dagger_with_compiler", 207 "//java/dagger/hilt:install_in", 208 "//java/dagger/hilt/android:android_entry_point", 209 "//java/dagger/hilt/android:package_info", 210 "@google_bazel_common//third_party/java/truth", 211 ], 212) 213 214android_local_test( 215 name = "ModuleTest", 216 srcs = ["ModuleTest.java"], 217 manifest_values = { 218 "minSdkVersion": "14", 219 }, 220 deps = [ 221 "//:android_local_test_exports", 222 "//:dagger_with_compiler", 223 "//java/dagger/hilt:install_in", 224 "//java/dagger/hilt/android:package_info", 225 "//java/dagger/hilt/android/testing:hilt_android_test", 226 "@google_bazel_common//third_party/java/jsr330_inject", 227 "@google_bazel_common//third_party/java/truth", 228 ], 229) 230 231android_local_test( 232 name = "InjectionTest", 233 size = "small", 234 srcs = ["InjectionTest.java"], 235 manifest_values = { 236 "minSdkVersion": "14", 237 }, 238 deps = [ 239 "//:android_local_test_exports", 240 "//:dagger_with_compiler", 241 "//java/dagger/hilt:install_in", 242 "//java/dagger/hilt/android:android_entry_point", 243 "//java/dagger/hilt/android:package_info", 244 "//java/dagger/hilt/android/testing:hilt_android_test", 245 "@google_bazel_common//third_party/java/jsr330_inject", 246 "@google_bazel_common//third_party/java/truth", 247 ], 248) 249 250android_local_test( 251 name = "InstallInObjectModuleTest", 252 srcs = ["InstallInObjectModuleTest.java"], 253 manifest_values = { 254 "minSdkVersion": "14", 255 }, 256 deps = [ 257 ":InstallInObjectModuleClasses", 258 "//:android_local_test_exports", 259 "//:dagger_with_compiler", 260 "//java/dagger/hilt:entry_point", 261 "//java/dagger/hilt/android:android_entry_point", 262 "//java/dagger/hilt/android:package_info", 263 "//java/dagger/hilt/android/testing:hilt_android_test", 264 "@google_bazel_common//third_party/java/junit", 265 "@google_bazel_common//third_party/java/truth", 266 ], 267) 268 269kt_android_library( 270 name = "InstallInObjectModuleClasses", 271 testonly = True, 272 srcs = ["InstallInObjectModule.kt"], 273 deps = [ 274 "//:dagger_with_compiler", 275 "//java/dagger/hilt:entry_point", 276 "//java/dagger/hilt:install_in", 277 "//java/dagger/hilt/components", 278 ], 279) 280 281android_local_test( 282 name = "InternalKtModuleTest", 283 size = "small", 284 srcs = ["InternalKtModuleTest.java"], 285 manifest_values = { 286 "minSdkVersion": "14", 287 }, 288 deps = [ 289 "//:android_local_test_exports", 290 "//:dagger_with_compiler", 291 "//java/dagger/hilt:entry_point", 292 "//java/dagger/hilt:install_in", 293 "//java/dagger/hilt/android:package_info", 294 "//java/dagger/hilt/android/testing:hilt_android_test", 295 "//javatests/dagger/hilt/testmodules", 296 "@google_bazel_common//third_party/java/truth", 297 ], 298) 299 300android_local_test( 301 name = "DefaultViewModelFactoryTest", 302 srcs = ["DefaultViewModelFactoryTest.java"], 303 manifest = "AndroidManifest.xml", 304 manifest_values = { 305 "minSdkVersion": "14", 306 }, 307 deps = [ 308 "//:android_local_test_exports", 309 "//:dagger_with_compiler", 310 "//java/dagger/hilt:entry_point", 311 "//java/dagger/hilt:install_in", 312 "//java/dagger/hilt/android:android_entry_point", 313 "//java/dagger/hilt/android:package_info", 314 "//java/dagger/hilt/android/lifecycle", 315 "//java/dagger/hilt/android/testing:bind_value", 316 "//java/dagger/hilt/android/testing:hilt_android_test", 317 "@google_bazel_common//third_party/java/jsr330_inject", 318 "@google_bazel_common//third_party/java/truth", 319 "@maven//:androidx_activity_activity", 320 "@maven//:androidx_fragment_fragment", 321 "@maven//:androidx_lifecycle_lifecycle_common", 322 "@maven//:androidx_lifecycle_lifecycle_viewmodel", 323 "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", 324 "@maven//:junit_junit", 325 ], 326) 327 328android_local_test( 329 name = "QualifierInKotlinFieldsTest", 330 srcs = ["QualifierInKotlinFieldsTest.java"], 331 manifest = "AndroidManifest.xml", 332 manifest_values = { 333 "minSdkVersion": "14", 334 }, 335 deps = [ 336 ":QualifierInFieldsClass", 337 "//:android_local_test_exports", 338 "//:dagger_with_compiler", 339 "//java/dagger/hilt/android:android_entry_point", 340 "//java/dagger/hilt/android:package_info", 341 "//java/dagger/hilt/android/testing:hilt_android_test", 342 "@google_bazel_common//third_party/java/jsr330_inject", 343 "@google_bazel_common//third_party/java/truth", 344 "@maven//:androidx_activity_activity", 345 "@maven//:androidx_fragment_fragment", 346 "@maven//:androidx_lifecycle_lifecycle_common", 347 "@maven//:androidx_lifecycle_lifecycle_viewmodel", 348 "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", 349 "@maven//:junit_junit", 350 ], 351) 352 353kt_android_library( 354 name = "QualifierInFieldsClass", 355 testonly = True, 356 srcs = ["QualifierInFieldsClass.kt"], 357 deps = [ 358 "//:dagger_with_compiler", 359 "//java/dagger/hilt/android/qualifiers", 360 ], 361) 362 363android_local_test( 364 name = "ActivityRetainedClearedListenerTest", 365 srcs = ["ActivityRetainedClearedListenerTest.java"], 366 manifest = "AndroidManifest.xml", 367 manifest_values = { 368 "minSdkVersion": "14", 369 }, 370 deps = [ 371 "//:android_local_test_exports", 372 "//:dagger_with_compiler", 373 "//java/dagger/hilt:entry_point", 374 "//java/dagger/hilt:install_in", 375 "//java/dagger/hilt/android:activity_retained_lifecycle", 376 "//java/dagger/hilt/android:android_entry_point", 377 "//java/dagger/hilt/android:package_info", 378 "//java/dagger/hilt/android/testing:hilt_android_test", 379 "@google_bazel_common//third_party/java/jsr330_inject", 380 "@google_bazel_common//third_party/java/truth", 381 "@maven//:androidx_activity_activity", 382 "@maven//:androidx_fragment_fragment", 383 "@maven//:androidx_lifecycle_lifecycle_common", 384 "@maven//:androidx_lifecycle_lifecycle_viewmodel", 385 "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", 386 "@maven//:junit_junit", 387 ], 388) 389 390android_local_test( 391 name = "ActivityInjectedViewModelTest", 392 srcs = ["ActivityInjectedViewModelTest.java"], 393 manifest = "AndroidManifest.xml", 394 manifest_values = { 395 "minSdkVersion": "14", 396 }, 397 deps = [ 398 "//:android_local_test_exports", 399 "//:dagger_with_compiler", 400 "//java/dagger/hilt:entry_point", 401 "//java/dagger/hilt:install_in", 402 "//java/dagger/hilt/android:android_entry_point", 403 "//java/dagger/hilt/android:package_info", 404 "//java/dagger/hilt/android/testing:hilt_android_test", 405 "@google_bazel_common//third_party/java/jsr330_inject", 406 "@google_bazel_common//third_party/java/truth", 407 "@maven//:androidx_activity_activity", 408 "@maven//:androidx_fragment_fragment", 409 "@maven//:androidx_lifecycle_lifecycle_common", 410 "@maven//:androidx_lifecycle_lifecycle_viewmodel", 411 "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", 412 "@maven//:junit_junit", 413 ], 414) 415 416android_local_test( 417 name = "ViewModelScopedTest", 418 srcs = ["ViewModelScopedTest.java"], 419 manifest = "AndroidManifest.xml", 420 manifest_values = { 421 "minSdkVersion": "14", 422 }, 423 deps = [ 424 "//:android_local_test_exports", 425 "//:dagger_with_compiler", 426 "//java/dagger/hilt:entry_point", 427 "//java/dagger/hilt:install_in", 428 "//java/dagger/hilt/android:android_entry_point", 429 "//java/dagger/hilt/android:package_info", 430 "//java/dagger/hilt/android/lifecycle", 431 "//java/dagger/hilt/android/scopes", 432 "//java/dagger/hilt/android/testing:hilt_android_test", 433 "@google_bazel_common//third_party/java/jsr330_inject", 434 "@google_bazel_common//third_party/java/truth", 435 "@maven//:androidx_activity_activity", 436 "@maven//:androidx_fragment_fragment", 437 "@maven//:androidx_lifecycle_lifecycle_common", 438 "@maven//:androidx_lifecycle_lifecycle_viewmodel", 439 "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", 440 "@maven//:junit_junit", 441 ], 442) 443 444android_local_test( 445 name = "ViewModelWithBaseTest", 446 srcs = ["ViewModelWithBaseTest.java"], 447 manifest = "AndroidManifest.xml", 448 manifest_values = { 449 "minSdkVersion": "14", 450 }, 451 deps = [ 452 "//:android_local_test_exports", 453 "//:dagger_with_compiler", 454 "//java/dagger/hilt:entry_point", 455 "//java/dagger/hilt:install_in", 456 "//java/dagger/hilt/android:android_entry_point", 457 "//java/dagger/hilt/android:package_info", 458 "//java/dagger/hilt/android/lifecycle", 459 "//java/dagger/hilt/android/testing:hilt_android_test", 460 "@google_bazel_common//third_party/java/jsr330_inject", 461 "@google_bazel_common//third_party/java/truth", 462 "@maven//:androidx_activity_activity", 463 "@maven//:androidx_fragment_fragment", 464 "@maven//:androidx_lifecycle_lifecycle_common", 465 "@maven//:androidx_lifecycle_lifecycle_viewmodel", 466 "@maven//:androidx_lifecycle_lifecycle_viewmodel_savedstate", 467 "@maven//:junit_junit", 468 ], 469) 470 471android_local_test( 472 name = "ActivityInjectedSavedStateViewModelTest", 473 srcs = ["ActivityInjectedSavedStateViewModelTest.java"], 474 manifest = "AndroidManifest.xml", 475 manifest_values = { 476 "minSdkVersion": "14", 477 }, 478 deps = [ 479 "//:android_local_test_exports", 480 "//:dagger_with_compiler", 481 "//java/dagger/hilt:entry_point", 482 "//java/dagger/hilt:install_in", 483 "//java/dagger/hilt/android:android_entry_point", 484 "//java/dagger/hilt/android:package_info", 485 "//java/dagger/hilt/android/testing:hilt_android_test", 486 "//java/dagger/internal/guava:base-android", 487 "@google_bazel_common//third_party/java/jsr330_inject", 488 "@google_bazel_common//third_party/java/truth", 489 "@maven//:junit_junit", 490 ], 491) 492 493android_library( 494 name = "uses_component_common", 495 srcs = [ 496 "UsesComponentHelper.java", 497 "UsesComponentTestClasses.java", 498 ], 499 deps = [ 500 "//:dagger_with_compiler", 501 "//java/dagger/hilt:define_component", 502 "//java/dagger/hilt:entry_point", 503 "//java/dagger/hilt:install_in", 504 "//java/dagger/hilt/android/components", 505 "@google_bazel_common//third_party/java/jsr330_inject", 506 ], 507) 508 509# This has to be split into a separate target in order to avoid 510# being compiled as "test bindings" in the compilation unit of 511# the test class itself. 512android_library( 513 name = "uses_component_test_module", 514 srcs = ["UsesComponentTestModule.java"], 515 deps = [ 516 ":uses_component_common", 517 "//:dagger_with_compiler", 518 "//java/dagger/hilt:install_in", 519 "//java/dagger/hilt/android/components", 520 ], 521) 522 523android_library( 524 name = "shared_component_test_classes", 525 srcs = [ 526 "UsesLocalComponentTestBindingsTest.java", 527 "UsesLocalComponentUninstallModuleTest.java", 528 "UsesSharedComponent1Test.java", 529 "UsesSharedComponent2Test.java", 530 "UsesSharedComponentEnclosedTest.java", 531 "//javatests/dagger/hilt/android/testsubpackage:UsesLocalComponentTestBindingsTest.java", 532 "//javatests/dagger/hilt/android/testsubpackage:UsesSharedComponent1Test.java", 533 ], 534 exports_manifest = 1, 535 javacopts = ["-Adagger.hilt.shareTestComponents=true"], 536 manifest = "AndroidManifest.xml", 537 deps = [ 538 ":uses_component_common", 539 ":uses_component_test_module", 540 "//:android_local_test_exports", 541 "//:dagger_with_compiler", 542 "//java/dagger/hilt:entry_point", 543 "//java/dagger/hilt:install_in", 544 "//java/dagger/hilt/android:android_entry_point", 545 "//java/dagger/hilt/android:hilt_android_app", 546 "//java/dagger/hilt/android:package_info", 547 "//java/dagger/hilt/android/testing:bind_value", 548 "//java/dagger/hilt/android/testing:custom_test_application", 549 "//java/dagger/hilt/android/testing:hilt_android_test", 550 "//java/dagger/hilt/android/testing:uninstall_modules", 551 "@google_bazel_common//third_party/java/jsr330_inject", 552 "@google_bazel_common//third_party/java/truth", 553 "@maven//:androidx_test_core", 554 "@maven//:androidx_test_ext_junit", 555 "@maven//:junit_junit", 556 "@maven//:org_robolectric_annotations", 557 "@maven//:org_robolectric_robolectric", 558 ], 559) 560 561# Separate target that uses @TestInstallIn to replace the global binding 562android_library( 563 name = "test_install_in_test_classes", 564 srcs = [ 565 "TestInstallInModules.java", 566 "UsesSharedComponentTestInstallInTest.java", 567 ], 568 javacopts = ["-Adagger.hilt.shareTestComponents=true"], 569 deps = [ 570 ":uses_component_common", 571 ":uses_component_test_module", 572 "//:android_local_test_exports", 573 "//:dagger_with_compiler", 574 "//java/dagger/hilt:install_in", 575 "//java/dagger/hilt/android:hilt_android_app", 576 "//java/dagger/hilt/android:package_info", 577 "//java/dagger/hilt/android/components", 578 "//java/dagger/hilt/android/testing:bind_value", 579 "//java/dagger/hilt/android/testing:hilt_android_test", 580 "//java/dagger/hilt/testing:test_install_in", 581 "@google_bazel_common//third_party/java/jsr330_inject", 582 "@google_bazel_common//third_party/java/truth", 583 "@maven//:androidx_test_core", 584 "@maven//:androidx_test_ext_junit", 585 "@maven//:junit_junit", 586 "@maven//:org_robolectric_annotations", 587 "@maven//:org_robolectric_robolectric", 588 ], 589) 590 591android_local_test( 592 name = "UsesLocalComponentTestBindingsTest", 593 manifest_values = { 594 "minSdkVersion": "14", 595 }, 596 deps = [ 597 ":shared_component_test_classes", 598 ], 599) 600 601android_local_test( 602 name = "UsesLocalComponentUninstallModuleTest", 603 manifest_values = { 604 "minSdkVersion": "14", 605 }, 606 deps = [ 607 ":shared_component_test_classes", 608 ], 609) 610 611android_local_test( 612 name = "UsesSharedComponent1Test", 613 manifest_values = { 614 "minSdkVersion": "14", 615 }, 616 deps = [ 617 ":shared_component_test_classes", 618 ], 619) 620 621android_local_test( 622 name = "UsesSharedComponent2Test", 623 manifest_values = { 624 "minSdkVersion": "14", 625 }, 626 deps = [ 627 ":shared_component_test_classes", 628 ], 629) 630 631android_local_test( 632 name = "UsesSharedComponentEnclosedTest", 633 manifest_values = { 634 "minSdkVersion": "14", 635 }, 636 deps = [ 637 ":shared_component_test_classes", 638 ], 639) 640 641android_local_test( 642 name = "UsesSharedComponentTestInstallInTest", 643 manifest_values = { 644 "minSdkVersion": "14", 645 }, 646 deps = [ 647 ":test_install_in_test_classes", 648 ], 649) 650