diff options
| author | Albin <albin@mullvad.net> | 2023-09-29 16:57:37 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-09-29 16:57:37 +0200 |
| commit | f9706c3bf2f636b2a155d7d490d20ba57fa2eada (patch) | |
| tree | 15e9d812c81ca0265a59357a46d7b415e9a9c544 /android | |
| parent | 567de191daed12cd2645ca4e09c4edc6bf108a4b (diff) | |
| parent | bc4440546d6581a41db84064beb7920325a6d984 (diff) | |
| download | mullvadvpn-f9706c3bf2f636b2a155d7d490d20ba57fa2eada.tar.xz mullvadvpn-f9706c3bf2f636b2a155d7d490d20ba57fa2eada.zip | |
Merge branch 'add-konsist-for-arch-testing-droid-334'
Diffstat (limited to 'android')
| -rw-r--r-- | android/buildSrc/src/main/kotlin/Dependencies.kt | 3 | ||||
| -rw-r--r-- | android/buildSrc/src/main/kotlin/Versions.kt | 1 | ||||
| -rw-r--r-- | android/gradle.properties | 1 | ||||
| -rw-r--r-- | android/gradle/verification-metadata.xml | 38 | ||||
| -rw-r--r-- | android/settings.gradle.kts | 16 | ||||
| -rw-r--r-- | android/test/arch/build.gradle.kts | 42 | ||||
| -rw-r--r-- | android/test/arch/src/test/AndroidManifest.xml | 1 | ||||
| -rw-r--r-- | android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt | 16 |
8 files changed, 112 insertions, 6 deletions
diff --git a/android/buildSrc/src/main/kotlin/Dependencies.kt b/android/buildSrc/src/main/kotlin/Dependencies.kt index 2aa2db27d6..80c3313683 100644 --- a/android/buildSrc/src/main/kotlin/Dependencies.kt +++ b/android/buildSrc/src/main/kotlin/Dependencies.kt @@ -4,9 +4,10 @@ object Dependencies { const val commonsValidator = "commons-validator:commons-validator:${Versions.commonsValidator}" const val jodaTime = "joda-time:joda-time:${Versions.jodaTime}" const val junit = "junit:junit:${Versions.junit}" + const val konsist = "com.lemonappdev:konsist:${Versions.konsist}" const val leakCanary = "com.squareup.leakcanary:leakcanary-android:${Versions.leakCanary}" - const val turbine = "app.cash.turbine:turbine:${Versions.turbine}" const val mockkWebserver = "com.squareup.okhttp3:mockwebserver:${Versions.mockWebserver}" + const val turbine = "app.cash.turbine:turbine:${Versions.turbine}" object AndroidX { const val appcompat = "androidx.appcompat:appcompat:${Versions.AndroidX.appcompat}" diff --git a/android/buildSrc/src/main/kotlin/Versions.kt b/android/buildSrc/src/main/kotlin/Versions.kt index d10c7e252b..553c952748 100644 --- a/android/buildSrc/src/main/kotlin/Versions.kt +++ b/android/buildSrc/src/main/kotlin/Versions.kt @@ -3,6 +3,7 @@ object Versions { const val jodaTime = "2.12.5" const val junit = "4.13.2" const val jvmTarget = "17" + const val konsist = "0.11.0" const val kotlin = "1.9.10" const val kotlinCompilerExtensionVersion = "1.5.3" const val kotlinx = "1.7.3" diff --git a/android/gradle.properties b/android/gradle.properties index 3f3bea5a66..4233d36b82 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,4 +1,3 @@ -android.enableJetifier=true android.enableR8.fullMode=true android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml index 98f3a9dd94..6aca8d73fa 100644 --- a/android/gradle/verification-metadata.xml +++ b/android/gradle/verification-metadata.xml @@ -2222,6 +2222,14 @@ <sha256 value="b29c1c21e52ed6238cd3fed39d880a17ecf2360118604548cea8821be6801e1c" origin="Generated by Gradle"/> </artifact> </component> + <component group="com.lemonappdev" name="konsist" version="0.11.0"> + <artifact name="konsist-0.11.0.jar"> + <sha256 value="6b60badd6cf1d49a7b76fee18fe7265bd96d98fd4b9fe065470a5fdf8dacc7bd" origin="Generated by Gradle"/> + </artifact> + <artifact name="konsist-0.11.0.module"> + <sha256 value="243b6b46fbacea79349ea05e5dba20d6ee72103361e74c8d5102270fc956b986" origin="Generated by Gradle"/> + </artifact> + </component> <component group="com.linkedin.dexmaker" name="dexmaker" version="2.28.1"> <artifact name="dexmaker-2.28.1.jar"> <sha256 value="824a109b2352138c3699760e1683385d0ed50ce526fc7982f8d65757743374bf" origin="Generated by Gradle"/> @@ -3178,6 +3186,11 @@ <sha256 value="2c28fa5d7c47e01c4eace2276e05e8d119a9f0b26cce98720781df36b792c821" origin="Generated by Gradle"/> </artifact> </component> + <component group="org.jetbrains.kotlin" name="kotlin-compiler" version="1.9.10"> + <artifact name="kotlin-compiler-1.9.10.jar"> + <sha256 value="a2718d75fb90075fb401d924013453ea97859aec6e189ebb9e6c83c630efe7f7" origin="Generated by Gradle"/> + </artifact> + </component> <component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="1.8.20"> <artifact name="kotlin-compiler-embeddable-1.8.20.jar"> <sha256 value="5655386be55d45a78d887372bbd59d03e06750f7756108d14139e8d7e4b2e179" origin="Generated by Gradle"/> @@ -3451,6 +3464,11 @@ <sha256 value="f78c5d8c09db985912ab83a1de3c3b53ddf208d7b151f06a72358ea3e137d01b" origin="Generated by Gradle"/> </artifact> </component> + <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.7.10"> + <artifact name="kotlin-stdlib-1.7.10.jar"> + <sha256 value="e771fe74250a943e8f6346713201ff1d8cb95c3a5d1a91a22b65a9e04f6a8901" origin="Generated by Gradle"/> + </artifact> + </component> <component group="org.jetbrains.kotlin" name="kotlin-stdlib" version="1.8.20"> <artifact name="kotlin-stdlib-1.8.20.jar"> <sha256 value="4395647b1961d9fb730a34e8dbe56c293157bc0759004cca63d9b5ee6653e5c7" origin="Generated by Gradle"/> @@ -3476,6 +3494,11 @@ <sha256 value="812cf197d9c4c67e1f47f95e2d72a9b600f0d1124560617bfe9850773eccbcff" origin="Generated by Gradle"/> </artifact> </component> + <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.7.10"> + <artifact name="kotlin-stdlib-common-1.7.10.jar"> + <sha256 value="19f102efe9629f8eabc63853ad15c533e47c47f91fca09285c5bde86e59f91d4" origin="Generated by Gradle"/> + </artifact> + </component> <component group="org.jetbrains.kotlin" name="kotlin-stdlib-common" version="1.8.20"> <artifact name="kotlin-stdlib-common-1.8.20.jar"> <sha256 value="fa20188abaa8ecf1d0035e93a969b071f10e45a1c8378c314521eade73f75fd5" origin="Generated by Gradle"/> @@ -3491,6 +3514,11 @@ <sha256 value="cde3341ba18a2ba262b0b7cf6c55b20c90e8d434e42c9a13e6a3f770db965a88" origin="Generated by Gradle"/> </artifact> </component> + <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.6.0"> + <artifact name="kotlin-stdlib-jdk7-1.6.0.jar"> + <sha256 value="870d35fd266b2daf64c1080fe51824d3c368f7995384a8d7c5fc2fdc40eb7b3a" origin="Generated by Gradle"/> + </artifact> + </component> <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.6.21"> <artifact name="kotlin-stdlib-jdk7-1.6.21.jar"> <sha256 value="f1b0634dbb94172038463020bb2dd45ca26849f8ce29d625acb0f1569d11dbee" origin="Generated by Gradle"/> @@ -3516,6 +3544,11 @@ <sha256 value="ac6361bf9ad1ed382c2103d9712c47cdec166232b4903ed596e8876b0681c9b7" origin="Generated by Gradle"/> </artifact> </component> + <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.6.0"> + <artifact name="kotlin-stdlib-jdk8-1.6.0.jar"> + <sha256 value="ab0547c495953214a5f2b28150014f4e02133678d52b77d76375ea235e443dbd" origin="Generated by Gradle"/> + </artifact> + </component> <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.6.21"> <artifact name="kotlin-stdlib-jdk8-1.6.21.jar"> <sha256 value="dab45489b47736d59fce44b80676f1947a9b6bcab10fd60e878a83bd82a6954c" origin="Generated by Gradle"/> @@ -3671,6 +3704,11 @@ <sha256 value="48dfd8139edee5481bcc8b25e24d7586aca615f0d1ed2beb242dc7478ed4cee0" origin="Generated by Gradle"/> </artifact> </component> + <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.5.0"> + <artifact name="kotlinx-coroutines-core-1.5.0.module"> + <sha256 value="d8a26a896da32fb1f8c3f13fe41cb798a612a1c1ddf3a555d82ee1ff16ef13d3" origin="Generated by Gradle"/> + </artifact> + </component> <component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core" version="1.6.1"> <artifact name="kotlinx-coroutines-core-1.6.1.module"> <sha256 value="79fe6569a9fffb409e51c64d5f8c54d27c4aa3735886155899d28ed2c9dfbc48" origin="Generated by Gradle"/> diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts index 5df9c08f1e..e47f3c08f9 100644 --- a/android/settings.gradle.kts +++ b/android/settings.gradle.kts @@ -1,5 +1,8 @@ -include(":app", ":service", ":tile") - +include( + ":app", + ":service", + ":tile" +) include( ":lib:common", ":lib:endpoint", @@ -10,5 +13,10 @@ include( ":lib:theme", ":lib:common-test" ) - -include(":test", ":test:common", ":test:e2e", ":test:mockapi") +include( + ":test", + ":test:arch", + ":test:common", + ":test:e2e", + ":test:mockapi" +) diff --git a/android/test/arch/build.gradle.kts b/android/test/arch/build.gradle.kts new file mode 100644 index 0000000000..0a28fd2fab --- /dev/null +++ b/android/test/arch/build.gradle.kts @@ -0,0 +1,42 @@ +plugins { + id(Dependencies.Plugin.androidLibraryId) + id(Dependencies.Plugin.kotlinAndroidId) +} + +android { + namespace = "net.mullvad.mullvadvpn.test.arch" + compileSdk = Versions.Android.compileSdkVersion + + defaultConfig { + minSdk = Versions.Android.minSdkVersion + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = Versions.jvmTarget + } + + lint { + lintConfig = file("${rootProject.projectDir}/config/lint.xml") + abortOnError = true + warningsAsErrors = true + } +} + +androidComponents { + beforeVariants { variantBuilder -> + variantBuilder.apply { + enable = name != "release" + } + } +} + +dependencies { + testImplementation(Dependencies.AndroidX.appcompat) + testImplementation(Dependencies.junit) + testImplementation(Dependencies.konsist) +} diff --git a/android/test/arch/src/test/AndroidManifest.xml b/android/test/arch/src/test/AndroidManifest.xml new file mode 100644 index 0000000000..cc947c5679 --- /dev/null +++ b/android/test/arch/src/test/AndroidManifest.xml @@ -0,0 +1 @@ +<manifest /> diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt new file mode 100644 index 0000000000..35ffe52c31 --- /dev/null +++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ViewModelTests.kt @@ -0,0 +1,16 @@ +package net.mullvad.mullvadvpn.test.arch + +import androidx.lifecycle.ViewModel +import com.lemonappdev.konsist.api.Konsist +import com.lemonappdev.konsist.api.ext.list.withAllParentsOf +import com.lemonappdev.konsist.api.verify.assert +import org.junit.Test + +class ViewModelTests { + @Test + fun ensureViewModelsHaveViewModelSuffix() { + Konsist.scopeFromProject().classes().withAllParentsOf(ViewModel::class).assert { + it.name.endsWith("ViewModel") + } + } +} |
