From a5776efae59392018e9f7fdbe41c0097bdb8ce63 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 17:04:36 +0900 Subject: [PATCH 01/24] Create AndroidApplicationTestOptionsConventionPlugin. Change-Id: I2d2041bfabf4500446e37e530a3a7da276538e29 --- ...dApplicationTestOptionsConventionPlugin.kt | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt new file mode 100644 index 000000000..aef83677b --- /dev/null +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt @@ -0,0 +1,30 @@ +import com.android.build.api.dsl.ApplicationExtension +import com.google.samples.apps.nowinandroid.configureTestOptions +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.getByType + +/* + * Copyright 2024 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 + * + * https://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. + */ + +class AndroidApplicationTestOptionsConventionPlugin : Plugin { + override fun apply(target: Project) { + with(target) { + val extension = extensions.getByType() + configureTestOptions(extension) + } + } +} From 796570f6957b4d33a51ab7dfa4e406898915dc9d Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 17:05:12 +0900 Subject: [PATCH 02/24] Create TestOptions - Set isIncludeAndroidResource true. Change-Id: I8f2220dda1fa07f98718e59159e072ac8a05b799 --- .../samples/apps/nowinandroid/TestOptions.kt | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt new file mode 100644 index 000000000..fefdc722d --- /dev/null +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2024 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 + * + * https://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 com.google.samples.apps.nowinandroid + +import com.android.build.api.dsl.CommonExtension +import org.gradle.api.Project + +internal fun Project.configureTestOptions( + commonExtension: CommonExtension<*, *, *, *, *, *>, +) { + commonExtension.apply { + testOptions { + unitTests { + isIncludeAndroidResources = true + } + } + } +} From c70c199a5a94e9d3891732d24100951d182b9f57 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 17:05:32 +0900 Subject: [PATCH 03/24] Remove testOptions. Change-Id: I1d9de9716c092a0aa0b19f5bbffbf485e6cbba2f --- .../com/google/samples/apps/nowinandroid/AndroidCompose.kt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt index e38c5b300..c9ecfcd3d 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/AndroidCompose.kt @@ -44,13 +44,6 @@ internal fun Project.configureAndroidCompose( add("implementation", libs.findLibrary("androidx-compose-ui-tooling-preview").get()) add("debugImplementation", libs.findLibrary("androidx-compose-ui-tooling").get()) } - - testOptions { - unitTests { - // For Robolectric - isIncludeAndroidResources = true - } - } } tasks.withType().configureEach { From fee755a0bef72b94f668e240c4ff4a8a616f9a6e Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 17:07:32 +0900 Subject: [PATCH 04/24] Sort by alphabetic. Change-Id: Ie924be4bbfc3cf82581dde1a039c8a4e9e13ca7e --- build-logic/convention/build.gradle.kts | 46 +++++++++++++------------ 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index aa0e615ad..d653c9384 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -54,45 +54,35 @@ tasks { gradlePlugin { plugins { - register("androidApplicationCompose") { - id = "nowinandroid.android.application.compose" - implementationClass = "AndroidApplicationComposeConventionPlugin" - } register("androidApplication") { id = "nowinandroid.android.application" implementationClass = "AndroidApplicationConventionPlugin" } + register("androidApplicationCompose") { + id = "nowinandroid.android.application.compose" + implementationClass = "AndroidApplicationComposeConventionPlugin" + } register("androidApplicationJacoco") { id = "nowinandroid.android.application.jacoco" implementationClass = "AndroidApplicationJacocoConventionPlugin" } - register("androidLibraryCompose") { - id = "nowinandroid.android.library.compose" - implementationClass = "AndroidLibraryComposeConventionPlugin" - } + register("androidLibrary") { id = "nowinandroid.android.library" implementationClass = "AndroidLibraryConventionPlugin" } - register("androidFeature") { - id = "nowinandroid.android.feature" - implementationClass = "AndroidFeatureConventionPlugin" + register("androidLibraryCompose") { + id = "nowinandroid.android.library.compose" + implementationClass = "AndroidLibraryComposeConventionPlugin" } register("androidLibraryJacoco") { id = "nowinandroid.android.library.jacoco" implementationClass = "AndroidLibraryJacocoConventionPlugin" } - register("androidTest") { - id = "nowinandroid.android.test" - implementationClass = "AndroidTestConventionPlugin" - } - register("androidHilt") { - id = "nowinandroid.android.hilt" - implementationClass = "AndroidHiltConventionPlugin" - } - register("androidRoom") { - id = "nowinandroid.android.room" - implementationClass = "AndroidRoomConventionPlugin" + + register("androidFeature") { + id = "nowinandroid.android.feature" + implementationClass = "AndroidFeatureConventionPlugin" } register("androidFirebase") { id = "nowinandroid.android.application.firebase" @@ -106,6 +96,18 @@ gradlePlugin { id = "nowinandroid.android.lint" implementationClass = "AndroidLintConventionPlugin" } + register("androidHilt") { + id = "nowinandroid.android.hilt" + implementationClass = "AndroidHiltConventionPlugin" + } + register("androidRoom") { + id = "nowinandroid.android.room" + implementationClass = "AndroidRoomConventionPlugin" + } + register("androidTest") { + id = "nowinandroid.android.test" + implementationClass = "AndroidTestConventionPlugin" + } register("jvmLibrary") { id = "nowinandroid.jvm.library" implementationClass = "JvmLibraryConventionPlugin" From 495289150c283388ec4066b0bae7f867c74fe476 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 17:08:25 +0900 Subject: [PATCH 05/24] Add androidApplicationTestOptions convention. Change-Id: I4280eea5a11717b7094f26d0d9ad7e62f7a2e465 --- build-logic/convention/build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index d653c9384..bd5e4eab0 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -66,6 +66,10 @@ gradlePlugin { id = "nowinandroid.android.application.jacoco" implementationClass = "AndroidApplicationJacocoConventionPlugin" } + register("androidApplicationTestOptions") { + id = "nowinandroid.android.application.testoptions" + implementationClass = "AndroidApplicationTestOptionsConventionPlugin" + } register("androidLibrary") { id = "nowinandroid.android.library" From b9612458b752e54debc484a38184ce58dcadb3e8 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 17:08:52 +0900 Subject: [PATCH 06/24] Add nowinandroid-android-application-testoptions. Change-Id: I2785707e6de200cf2a5556c2e0141281c6c5bcab --- gradle/libs.versions.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1374261ce..e0e990f78 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -175,6 +175,7 @@ nowinandroid-android-application-compose = { id = "nowinandroid.android.applicat nowinandroid-android-application-firebase = { id = "nowinandroid.android.application.firebase", version = "unspecified" } nowinandroid-android-application-flavors = { id = "nowinandroid.android.application.flavors", version = "unspecified" } nowinandroid-android-application-jacoco = { id = "nowinandroid.android.application.jacoco", version = "unspecified" } +nowinandroid-android-application-testoptions = { id = "nowinandroid.android.application.testoptions", version = "unspecified" } nowinandroid-android-feature = { id = "nowinandroid.android.feature", version = "unspecified" } nowinandroid-android-hilt = { id = "nowinandroid.android.hilt", version = "unspecified" } nowinandroid-android-library = { id = "nowinandroid.android.library", version = "unspecified" } From 8b569312e1306073fcfc51e69b27251036c3ae00 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 17:11:28 +0900 Subject: [PATCH 07/24] Replace testOptions into plugin(testOptions). Change-Id: If735d63c12ed036f6bfebd8fbcedb3bec89afa32 --- app/build.gradle.kts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 355ec42c0..d13b8fced 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,15 +16,16 @@ import com.google.samples.apps.nowinandroid.NiaBuildType plugins { + alias(libs.plugins.baselineprofile) alias(libs.plugins.nowinandroid.android.application) alias(libs.plugins.nowinandroid.android.application.compose) alias(libs.plugins.nowinandroid.android.application.flavors) alias(libs.plugins.nowinandroid.android.application.jacoco) - alias(libs.plugins.nowinandroid.android.hilt) alias(libs.plugins.nowinandroid.android.application.firebase) - id("com.google.android.gms.oss-licenses-plugin") - alias(libs.plugins.baselineprofile) + alias(libs.plugins.nowinandroid.android.application.testoptions) + alias(libs.plugins.nowinandroid.android.hilt) alias(libs.plugins.roborazzi) + id("com.google.android.gms.oss-licenses-plugin") } android { @@ -63,11 +64,6 @@ android { excludes.add("/META-INF/{AL2.0,LGPL2.1}") } } - testOptions { - unitTests { - isIncludeAndroidResources = true - } - } namespace = "com.google.samples.apps.nowinandroid" } From 9ebf332b35bf9f9467577d0c3280620597f51757 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 19:02:12 +0900 Subject: [PATCH 08/24] Add application plugin. Change-Id: I3fd65aa2d3b7ec2dd89713e395fe00e9e3608923 --- .../kotlin/AndroidApplicationTestOptionsConventionPlugin.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt index aef83677b..51e1d1a89 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt @@ -23,6 +23,8 @@ import org.gradle.kotlin.dsl.getByType class AndroidApplicationTestOptionsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { + pluginManager.apply("com.android.application") + val extension = extensions.getByType() configureTestOptions(extension) } From 1b529e6859780f28fccf6dcc6cd41f2299b1371e Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 19:02:51 +0900 Subject: [PATCH 09/24] Create AndroidLibraryTestOptionsConventionPlugin. Change-Id: Iaa4421b13b37ce463e61261e976c0a583207bb18 --- ...droidLibraryTestOptionsConventionPlugin.kt | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt new file mode 100644 index 000000000..2aba116a1 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt @@ -0,0 +1,33 @@ + +import com.android.build.api.dsl.LibraryExtension +import com.google.samples.apps.nowinandroid.configureTestOptions +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.getByType + +/* + * Copyright 2024 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 + * + * https://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. + */ + +class AndroidLibraryTestOptionsConventionPlugin : Plugin { + override fun apply(target: Project) { + with(target) { + pluginManager.apply("com.android.library") + + val extension = extensions.getByType() + configureTestOptions(extension) + } + } +} From 9e12749b3f47b1d31c14a142abe324bfe48f966d Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 19:03:17 +0900 Subject: [PATCH 10/24] Add androidLibraryTestOptions. Change-Id: Ibd7ddcc36eb3d755e8595e9a0edf71f638acf8b2 --- build-logic/convention/build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index bd5e4eab0..2877ca5ae 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -83,6 +83,10 @@ gradlePlugin { id = "nowinandroid.android.library.jacoco" implementationClass = "AndroidLibraryJacocoConventionPlugin" } + register("androidLibraryTestOptions") { + id = "nowinandroid.android.library.testoptions" + implementationClass = "AndroidLibraryTestOptionsConventionPlugin" + } register("androidFeature") { id = "nowinandroid.android.feature" From da7d5871d57e10ce2977147df6480df86862b67f Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 19:09:09 +0900 Subject: [PATCH 11/24] Remove testOptions and replace it `plugin(testOptions)`` Change-Id: Id450a978b94f20310f3114563e242fc4232cf6af --- core/data/build.gradle.kts | 9 ++------- core/network/build.gradle.kts | 8 ++------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index 142637ff9..8e544be71 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -14,20 +14,15 @@ * limitations under the License. */ plugins { + alias(libs.plugins.nowinandroid.android.hilt) alias(libs.plugins.nowinandroid.android.library) alias(libs.plugins.nowinandroid.android.library.jacoco) - alias(libs.plugins.nowinandroid.android.hilt) + alias(libs.plugins.nowinandroid.android.library.testoptions) id("kotlinx-serialization") } android { namespace = "com.google.samples.apps.nowinandroid.core.data" - testOptions { - unitTests { - isIncludeAndroidResources = true - isReturnDefaultValues = true - } - } } dependencies { diff --git a/core/network/build.gradle.kts b/core/network/build.gradle.kts index 689a99e73..be7d58fe7 100644 --- a/core/network/build.gradle.kts +++ b/core/network/build.gradle.kts @@ -15,9 +15,10 @@ */ plugins { + alias(libs.plugins.nowinandroid.android.hilt) alias(libs.plugins.nowinandroid.android.library) alias(libs.plugins.nowinandroid.android.library.jacoco) - alias(libs.plugins.nowinandroid.android.hilt) + alias(libs.plugins.nowinandroid.android.library.testoptions) id("kotlinx-serialization") id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") } @@ -27,11 +28,6 @@ android { buildConfig = true } namespace = "com.google.samples.apps.nowinandroid.core.network" - testOptions { - unitTests { - isIncludeAndroidResources = true - } - } } secrets { From a01aadbeb2fcdb237761f7da02710d4a8400f329 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 19:13:21 +0900 Subject: [PATCH 12/24] Reorder alias. Change-Id: Ic34377a00dbdf6fe8aa03ef4a08e8df3f3dcaa72 --- core/data/build.gradle.kts | 2 +- core/network/build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index 8e544be71..d405ca5f1 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -14,10 +14,10 @@ * limitations under the License. */ plugins { - alias(libs.plugins.nowinandroid.android.hilt) alias(libs.plugins.nowinandroid.android.library) alias(libs.plugins.nowinandroid.android.library.jacoco) alias(libs.plugins.nowinandroid.android.library.testoptions) + alias(libs.plugins.nowinandroid.android.hilt) id("kotlinx-serialization") } diff --git a/core/network/build.gradle.kts b/core/network/build.gradle.kts index be7d58fe7..5da041bbc 100644 --- a/core/network/build.gradle.kts +++ b/core/network/build.gradle.kts @@ -15,10 +15,10 @@ */ plugins { - alias(libs.plugins.nowinandroid.android.hilt) alias(libs.plugins.nowinandroid.android.library) alias(libs.plugins.nowinandroid.android.library.jacoco) alias(libs.plugins.nowinandroid.android.library.testoptions) + alias(libs.plugins.nowinandroid.android.hilt) id("kotlinx-serialization") id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") } From 73afbe1283c03be937fb2274fcef84780ff8a513 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 19:32:33 +0900 Subject: [PATCH 13/24] Reorder alias. Change-Id: Ie375786a10601bcd63e226a5be715009e2546b2f --- core/designsystem/build.gradle.kts | 1 + feature/foryou/build.gradle.kts | 1 + 2 files changed, 2 insertions(+) diff --git a/core/designsystem/build.gradle.kts b/core/designsystem/build.gradle.kts index 080100a66..3a9ffd475 100644 --- a/core/designsystem/build.gradle.kts +++ b/core/designsystem/build.gradle.kts @@ -17,6 +17,7 @@ plugins { alias(libs.plugins.nowinandroid.android.library) alias(libs.plugins.nowinandroid.android.library.compose) alias(libs.plugins.nowinandroid.android.library.jacoco) + alias(libs.plugins.nowinandroid.android.library.testoptions) alias(libs.plugins.roborazzi) } diff --git a/feature/foryou/build.gradle.kts b/feature/foryou/build.gradle.kts index fd41d9a13..ddb3e4a91 100644 --- a/feature/foryou/build.gradle.kts +++ b/feature/foryou/build.gradle.kts @@ -18,6 +18,7 @@ plugins { alias(libs.plugins.nowinandroid.android.feature) alias(libs.plugins.nowinandroid.android.library.compose) alias(libs.plugins.nowinandroid.android.library.jacoco) + alias(libs.plugins.nowinandroid.android.library.testoptions) alias(libs.plugins.roborazzi) } From d510c8ba9ffdd32c105b9693a4846f7902ecc8c5 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Thu, 16 May 2024 19:48:08 +0900 Subject: [PATCH 14/24] Add nowinandroid-android-library-testoptions. Change-Id: I50b68cb7a0b51cf3e50e650c8fae8495344eb3ee --- gradle/libs.versions.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e0e990f78..a541cf9fa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -181,6 +181,7 @@ nowinandroid-android-hilt = { id = "nowinandroid.android.hilt", version = "unspe nowinandroid-android-library = { id = "nowinandroid.android.library", version = "unspecified" } nowinandroid-android-library-compose = { id = "nowinandroid.android.library.compose", version = "unspecified" } nowinandroid-android-library-jacoco = { id = "nowinandroid.android.library.jacoco", version = "unspecified" } +nowinandroid-android-library-testoptions = { id = "nowinandroid.android.library.testoptions", version = "unspecified" } nowinandroid-android-lint = { id = "nowinandroid.android.lint", version = "unspecified" } nowinandroid-android-room = { id = "nowinandroid.android.room", version = "unspecified" } nowinandroid-android-test = { id = "nowinandroid.android.test", version = "unspecified" } From a2f5a2b473c3babd073ec8674db7fec0189beb9e Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Sat, 18 May 2024 19:46:15 +0900 Subject: [PATCH 15/24] Change `getByType` to `.configure`. Change-Id: Ia697b6ce48c561b559449103c9983444e30a0b4f --- .../AndroidApplicationTestOptionsConventionPlugin.kt | 7 +++---- .../kotlin/AndroidLibraryTestOptionsConventionPlugin.kt | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt index 51e1d1a89..6f17e6ddb 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt @@ -23,10 +23,9 @@ import org.gradle.kotlin.dsl.getByType class AndroidApplicationTestOptionsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { - pluginManager.apply("com.android.application") - - val extension = extensions.getByType() - configureTestOptions(extension) + extensions.configure { + configureTestOptions(this) + } } } } diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt index 2aba116a1..ac2bedab4 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt @@ -24,10 +24,9 @@ import org.gradle.kotlin.dsl.getByType class AndroidLibraryTestOptionsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { - pluginManager.apply("com.android.library") - - val extension = extensions.getByType() - configureTestOptions(extension) + extensions.configure { + configureTestOptions(this) + } } } } From 177a709d221488a5c838f525418c43ab8d1201b5 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Sat, 18 May 2024 19:46:31 +0900 Subject: [PATCH 16/24] Fix spotless. Change-Id: I86e532d6dbf8427ee0f9facb594dd6307ff425dc --- ...AndroidApplicationTestOptionsConventionPlugin.kt | 12 ++++++------ .../AndroidLibraryTestOptionsConventionPlugin.kt | 13 ++++++------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt index 6f17e6ddb..3ec95b01a 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt @@ -1,9 +1,3 @@ -import com.android.build.api.dsl.ApplicationExtension -import com.google.samples.apps.nowinandroid.configureTestOptions -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.getByType - /* * Copyright 2024 The Android Open Source Project * @@ -20,6 +14,12 @@ import org.gradle.kotlin.dsl.getByType * limitations under the License. */ +import com.android.build.api.dsl.ApplicationExtension +import com.google.samples.apps.nowinandroid.configureTestOptions +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure + class AndroidApplicationTestOptionsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt index ac2bedab4..5703248bb 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt @@ -1,10 +1,3 @@ - -import com.android.build.api.dsl.LibraryExtension -import com.google.samples.apps.nowinandroid.configureTestOptions -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.getByType - /* * Copyright 2024 The Android Open Source Project * @@ -21,6 +14,12 @@ import org.gradle.kotlin.dsl.getByType * limitations under the License. */ +import com.android.build.api.dsl.LibraryExtension +import com.google.samples.apps.nowinandroid.configureTestOptions +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure + class AndroidLibraryTestOptionsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { From 8973c30090c1058c8b671adc76a8aa5a40fb5758 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Wed, 5 Jun 2024 16:49:54 +0900 Subject: [PATCH 17/24] Add comment "For Robolectric". Change-Id: I85f9d6c4609e952243cede64ee50d7b857ce14ce --- .../kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt index fefdc722d..08d27d5c7 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt @@ -24,6 +24,7 @@ internal fun Project.configureTestOptions( ) { commonExtension.apply { testOptions { + // For Robolectric unitTests { isIncludeAndroidResources = true } From 06d2d25a0d406a5a179afa8e3388b3831b62c441 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Wed, 5 Jun 2024 16:54:02 +0900 Subject: [PATCH 18/24] Rename to `configureTestOptionsUnitTests` Change-Id: I2e59705f586b8473e14d0a50ceb24d094ca4d749 --- .../kotlin/AndroidApplicationTestOptionsConventionPlugin.kt | 4 ++-- .../main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt | 4 ++-- .../com/google/samples/apps/nowinandroid/TestOptions.kt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt index 3ec95b01a..45089b785 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt @@ -15,7 +15,7 @@ */ import com.android.build.api.dsl.ApplicationExtension -import com.google.samples.apps.nowinandroid.configureTestOptions +import com.google.samples.apps.nowinandroid.configureTestOptionsUnitTests import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -24,7 +24,7 @@ class AndroidApplicationTestOptionsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { extensions.configure { - configureTestOptions(this) + configureTestOptionsUnitTests(this) } } } diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt index 5703248bb..b27944251 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt @@ -15,7 +15,7 @@ */ import com.android.build.api.dsl.LibraryExtension -import com.google.samples.apps.nowinandroid.configureTestOptions +import com.google.samples.apps.nowinandroid.configureTestOptionsUnitTests import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -24,7 +24,7 @@ class AndroidLibraryTestOptionsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { extensions.configure { - configureTestOptions(this) + configureTestOptionsUnitTests(this) } } } diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt index 08d27d5c7..f66a934e2 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/TestOptions.kt @@ -19,7 +19,7 @@ package com.google.samples.apps.nowinandroid import com.android.build.api.dsl.CommonExtension import org.gradle.api.Project -internal fun Project.configureTestOptions( +internal fun Project.configureTestOptionsUnitTests( commonExtension: CommonExtension<*, *, *, *, *, *>, ) { commonExtension.apply { From 3166085180a89849688ffc4c4b03ba864582a9f2 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Wed, 5 Jun 2024 16:55:04 +0900 Subject: [PATCH 19/24] Rename to `AndroidLibraryTestOptionsUnitTestsConventionPlugin`. Change-Id: I33ccfb257ab12297dd15848d0b2ca4c580bc82d4 --- build-logic/convention/build.gradle.kts | 2 +- ...kt => AndroidLibraryTestOptionsUnitTestsConventionPlugin.kt} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename build-logic/convention/src/main/kotlin/{AndroidLibraryTestOptionsConventionPlugin.kt => AndroidLibraryTestOptionsUnitTestsConventionPlugin.kt} (93%) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index 2877ca5ae..7b1192a15 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -85,7 +85,7 @@ gradlePlugin { } register("androidLibraryTestOptions") { id = "nowinandroid.android.library.testoptions" - implementationClass = "AndroidLibraryTestOptionsConventionPlugin" + implementationClass = "AndroidLibraryTestOptionsUnitTestsConventionPlugin" } register("androidFeature") { diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsUnitTestsConventionPlugin.kt similarity index 93% rename from build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt rename to build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsUnitTestsConventionPlugin.kt index b27944251..c8d769e91 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryTestOptionsUnitTestsConventionPlugin.kt @@ -20,7 +20,7 @@ import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure -class AndroidLibraryTestOptionsConventionPlugin : Plugin { +class AndroidLibraryTestOptionsUnitTestsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { extensions.configure { From 14eb651eb6709f00149c7c237fb8ef0bf8e47ff8 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Wed, 5 Jun 2024 16:56:21 +0900 Subject: [PATCH 20/24] Rename to `AndroidApplicationsTestOptionsUnitTestsConventionPlugin`. Change-Id: I2fbcd698121893042fd1638f990f3c3395ecb32a --- build-logic/convention/build.gradle.kts | 2 +- ... AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename build-logic/convention/src/main/kotlin/{AndroidApplicationTestOptionsConventionPlugin.kt => AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt} (92%) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index 7b1192a15..65688b2d2 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -68,7 +68,7 @@ gradlePlugin { } register("androidApplicationTestOptions") { id = "nowinandroid.android.application.testoptions" - implementationClass = "AndroidApplicationTestOptionsConventionPlugin" + implementationClass = "AndroidApplicationsTestOptionsUnitTestsConventionPlugin" } register("androidLibrary") { diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt similarity index 92% rename from build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt rename to build-logic/convention/src/main/kotlin/AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt index 45089b785..48d2a33a4 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationTestOptionsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt @@ -20,7 +20,7 @@ import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure -class AndroidApplicationTestOptionsConventionPlugin : Plugin { +class AndroidApplicationsTestOptionsUnitTestsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { extensions.configure { From 87af5ec93c5ddb4f57ed799b511568867d072274 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Wed, 5 Jun 2024 17:02:57 +0900 Subject: [PATCH 21/24] Revert 'baselineprofile location'. Change-Id: I902b934ac00ae687a737e03a274e25847fffc9a9 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d13b8fced..e5e3d7bf7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,7 +16,6 @@ import com.google.samples.apps.nowinandroid.NiaBuildType plugins { - alias(libs.plugins.baselineprofile) alias(libs.plugins.nowinandroid.android.application) alias(libs.plugins.nowinandroid.android.application.compose) alias(libs.plugins.nowinandroid.android.application.flavors) @@ -24,6 +23,7 @@ plugins { alias(libs.plugins.nowinandroid.android.application.firebase) alias(libs.plugins.nowinandroid.android.application.testoptions) alias(libs.plugins.nowinandroid.android.hilt) + alias(libs.plugins.baselineprofile) alias(libs.plugins.roborazzi) id("com.google.android.gms.oss-licenses-plugin") } From 993d653e3f1cb8da841defaf955d957f69480392 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Wed, 5 Jun 2024 17:14:46 +0900 Subject: [PATCH 22/24] Remove 's' from Applications Change-Id: I44be17e7c6d2dc7fe3bba17ef604f6a08ce036c4 --- build-logic/convention/build.gradle.kts | 2 +- .../AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index 65688b2d2..88280e3b4 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -68,7 +68,7 @@ gradlePlugin { } register("androidApplicationTestOptions") { id = "nowinandroid.android.application.testoptions" - implementationClass = "AndroidApplicationsTestOptionsUnitTestsConventionPlugin" + implementationClass = "AndroidApplicationTestOptionsUnitTestsConventionPlugin" } register("androidLibrary") { diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt index 48d2a33a4..c38e09fb4 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationsTestOptionsUnitTestsConventionPlugin.kt @@ -20,7 +20,7 @@ import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure -class AndroidApplicationsTestOptionsUnitTestsConventionPlugin : Plugin { +class AndroidApplicationTestOptionsUnitTestsConventionPlugin : Plugin { override fun apply(target: Project) { with(target) { extensions.configure { From 445d753abb208cfbf880093789ea64a95251fe13 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Wed, 5 Jun 2024 17:15:19 +0900 Subject: [PATCH 23/24] Rename register to `androidLibraryTestOptionsUnitTests`. Change-Id: I0a88517593432d92252f9246c4545d8a0f6b6deb --- build-logic/convention/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index 88280e3b4..ed482dbbf 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -83,7 +83,7 @@ gradlePlugin { id = "nowinandroid.android.library.jacoco" implementationClass = "AndroidLibraryJacocoConventionPlugin" } - register("androidLibraryTestOptions") { + register("androidLibraryTestOptionsUnitTests") { id = "nowinandroid.android.library.testoptions" implementationClass = "AndroidLibraryTestOptionsUnitTestsConventionPlugin" } From 08622d24630a87b87c0c9bd1527c6c4ed265f7af Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Wed, 5 Jun 2024 17:15:29 +0900 Subject: [PATCH 24/24] Rename register to `androidApplicationTestOptionsUnitTests`. Change-Id: I462c76a54bfea6ec72d4af1ee8f42bdbd64510eb --- build-logic/convention/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index ed482dbbf..452afbc31 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -66,7 +66,7 @@ gradlePlugin { id = "nowinandroid.android.application.jacoco" implementationClass = "AndroidApplicationJacocoConventionPlugin" } - register("androidApplicationTestOptions") { + register("androidApplicationTestOptionsUnitTests") { id = "nowinandroid.android.application.testoptions" implementationClass = "AndroidApplicationTestOptionsUnitTestsConventionPlugin" }