• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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