summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-01-16 10:37:39 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-01-16 10:37:39 +0100
commitee9597c4628773fcc6cc93306bab5e01ce2401f1 (patch)
treeb31dc3da5c2089430d887a2ea3662adfba364aca /android
parent2ddea954bd1f4bfb351d9ae6e93440be000a17a6 (diff)
parent90e0283595e61de703d93cdc8871d7b16ae5f80f (diff)
downloadmullvadvpn-ee9597c4628773fcc6cc93306bab5e01ce2401f1.tar.xz
mullvadvpn-ee9597c4628773fcc6cc93306bab5e01ce2401f1.zip
Merge branch 'migrate-missed-junit4-test-and-try-to-prevent-junit4-for-droid-636'
Diffstat (limited to 'android')
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreenTest.kt4
-rw-r--r--android/gradle/verification-metadata.xml20
-rw-r--r--android/lib/ipc/build.gradle.kts3
-rw-r--r--android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt2
-rw-r--r--android/test/arch/build.gradle.kts3
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTests.kt30
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LogoutTest.kt11
7 files changed, 53 insertions, 20 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreenTest.kt
index dc1362ad37..12e06b009d 100644
--- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreenTest.kt
+++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreenTest.kt
@@ -14,7 +14,7 @@ import net.mullvad.mullvadvpn.applist.AppData
import net.mullvad.mullvadvpn.applist.ApplicationsIconManager
import net.mullvad.mullvadvpn.compose.setContentWithTheme
import net.mullvad.mullvadvpn.compose.state.SplitTunnelingUiState
-import org.junit.After
+import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.RegisterExtension
@@ -41,7 +41,7 @@ class SplitTunnelingScreenTest {
loadKoinModules(testModule)
}
- @After
+ @AfterEach
fun tearDown() {
unloadKoinModules(testModule)
unmockkAll()
diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml
index 407f9ac4ae..eb02dba16a 100644
--- a/android/gradle/verification-metadata.xml
+++ b/android/gradle/verification-metadata.xml
@@ -925,6 +925,11 @@
<sha256 value="33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="androidx.lifecycle" name="lifecycle-common" version="2.0.0">
+ <artifact name="lifecycle-common-2.0.0.jar">
+ <sha256 value="7bad7a188804adea6fa1f35d5ef99b705f20bd93ecadde484760ff86b535fefc" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="androidx.lifecycle" name="lifecycle-common" version="2.3.1">
<artifact name="lifecycle-common-2.3.1.jar">
<sha256 value="15848fb56db32f4c7cdc72b324003183d52a4884d6bf09be708ac7f587d139b5" origin="Generated by Gradle"/>
@@ -1323,6 +1328,11 @@
<sha256 value="c0754928effe1968c3a9a7b55d1dfc7ceb1e1e7c9f3f09f98afd42431f712492" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="androidx.test" name="core" version="1.4.0">
+ <artifact name="core-1.4.0.aar">
+ <sha256 value="671284e62e393f16ceae1a99a3a9a07bf1aacda29f8fe7b6b884355ef34c09cf" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="androidx.test" name="core" version="1.5.0">
<artifact name="core-1.5.0.aar">
<sha256 value="2c06715c0d0843cee2143ab8bb322bb3f34d5247630402fc8c1b6a0eafa15b9f" origin="Generated by Gradle"/>
@@ -3592,11 +3602,6 @@
<sha256 value="870d35fd266b2daf64c1080fe51824d3c368f7995384a8d7c5fc2fdc40eb7b3a" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.6.20">
- <artifact name="kotlin-stdlib-jdk7-1.6.20.jar">
- <sha256 value="aa2fa2e81355c4d98dd97da2169bf401f842261378f5b1cbea1aa11855d67620" 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"/>
@@ -3642,11 +3647,6 @@
<sha256 value="ab0547c495953214a5f2b28150014f4e02133678d52b77d76375ea235e443dbd" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.6.20">
- <artifact name="kotlin-stdlib-jdk8-1.6.20.jar">
- <sha256 value="fdab1bf120e2b5e7ab6d7888e9ebc024ec6b8ca729361296395dab634b213695" 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"/>
diff --git a/android/lib/ipc/build.gradle.kts b/android/lib/ipc/build.gradle.kts
index 85b15dacaf..35fa3c4f1e 100644
--- a/android/lib/ipc/build.gradle.kts
+++ b/android/lib/ipc/build.gradle.kts
@@ -2,6 +2,7 @@ plugins {
id(Dependencies.Plugin.androidLibraryId)
id(Dependencies.Plugin.kotlinAndroidId)
id(Dependencies.Plugin.kotlinParcelizeId)
+ id(Dependencies.Plugin.junit5) version Versions.Plugin.junit5
}
android {
@@ -33,6 +34,8 @@ dependencies {
implementation(Dependencies.Kotlin.stdlib)
implementation(Dependencies.KotlinX.coroutinesAndroid)
+ androidTestImplementation(Dependencies.junitApi)
+ androidTestImplementation(Dependencies.junitEngine)
androidTestImplementation(Dependencies.AndroidX.testRunner)
androidTestImplementation(Dependencies.Kotlin.test)
}
diff --git a/android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt b/android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt
index e3ad447cc2..a125af6059 100644
--- a/android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt
+++ b/android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt
@@ -9,7 +9,7 @@ import kotlinx.coroutines.flow.take
import kotlinx.coroutines.flow.toList
import kotlinx.coroutines.runBlocking
import kotlinx.parcelize.Parcelize
-import org.junit.Test
+import org.junit.jupiter.api.Test
class HandlerFlowTest {
val looper by lazy { Looper.getMainLooper() }
diff --git a/android/test/arch/build.gradle.kts b/android/test/arch/build.gradle.kts
index 18503fa362..2665083cb0 100644
--- a/android/test/arch/build.gradle.kts
+++ b/android/test/arch/build.gradle.kts
@@ -1,6 +1,7 @@
plugins {
id(Dependencies.Plugin.androidLibraryId)
id(Dependencies.Plugin.kotlinAndroidId)
+ id(Dependencies.Plugin.junit5) version Versions.Plugin.junit5
}
android {
@@ -28,6 +29,8 @@ androidComponents {
}
dependencies {
+ testRuntimeOnly(Dependencies.junitEngine)
+
testImplementation(Dependencies.Compose.uiToolingAndroidPreview)
testImplementation(Dependencies.AndroidX.appcompat)
testImplementation(Dependencies.junitApi)
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTests.kt
new file mode 100644
index 0000000000..bce85d8f8a
--- /dev/null
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/JUnitTests.kt
@@ -0,0 +1,30 @@
+package net.mullvad.mullvadvpn.test.arch
+
+import com.lemonappdev.konsist.api.Konsist
+import com.lemonappdev.konsist.api.verify.assertEmpty
+import org.junit.jupiter.api.Test
+
+class JUnitTests {
+
+ @Test
+ fun `ensure only junit5 annotations are used for functions`() =
+ Konsist.scopeFromProject()
+ .functions()
+ .filter {
+ it.annotations.any { annotation ->
+ annotation.fullyQualifiedName.matches(Regex("org.junit((?!jupiter).)*\$"))
+ }
+ }
+ .assertEmpty()
+
+ @Test
+ fun `ensure only junit5 annotations are used for classes`() =
+ Konsist.scopeFromProject()
+ .classes()
+ .filter {
+ it.annotations.any { annotation ->
+ annotation.fullyQualifiedName.matches(Regex("org.junit((?!jupiter).)*\$"))
+ }
+ }
+ .assertEmpty()
+}
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LogoutTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LogoutTest.kt
index 8552b8a238..95ad9c22f5 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LogoutTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LogoutTest.kt
@@ -1,18 +1,15 @@
package net.mullvad.mullvadvpn.test.e2e
-import androidx.test.runner.AndroidJUnit4
import androidx.test.uiautomator.By
-import junit.framework.Assert.assertNotNull
import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
import net.mullvad.mullvadvpn.test.e2e.misc.CleanupAccountTestRule
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
+import org.junit.jupiter.api.Assertions.assertNotNull
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.api.extension.RegisterExtension
-@RunWith(AndroidJUnit4::class)
class LogoutTest : EndToEndTest() {
- @Rule @JvmField val cleanupAccountTestRule = CleanupAccountTestRule()
+ @RegisterExtension @JvmField val cleanupAccountTestRule = CleanupAccountTestRule()
@Test
fun testLogout() {