diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index b05e604b64ff..f0c576664768 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -243,6 +243,13 @@ android { project.tasks.assemble.dependsOn("ensureValidVersionCode") } +junitPlatform { + instrumentationTests { + version.set(Versions.Android.junit) + includeExtensions.set(true) + } +} + composeCompiler { enableStrongSkippingMode = true } androidComponents { @@ -369,9 +376,6 @@ dependencies { testImplementation(Dependencies.junitParams) // UI test dependencies - debugImplementation(Dependencies.AndroidX.fragmentTestning) - // Fixes: https://github.com/android/android-test/issues/1589 - debugImplementation(Dependencies.AndroidX.testMonitor) debugImplementation(Dependencies.Compose.testManifest) androidTestImplementation(Dependencies.Koin.test) androidTestImplementation(Dependencies.Kotlin.test) diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt index c0bf5a135d0b..33eb3bdc3c71 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/LoginViewModelTest.kt @@ -148,6 +148,7 @@ class LoginViewModelTest { uiStates.skipDefaultItem() loginViewModel.login(DUMMY_ACCOUNT_NUMBER.value) assertEquals(Loading.LoggingIn, uiStates.awaitItem().loginState) + assertEquals(Idle(null), uiStates.awaitItem().loginState) assertEquals( LoginUiSideEffect.TooManyDevices(DUMMY_ACCOUNT_NUMBER), sideEffects.awaitItem() diff --git a/android/buildSrc/src/main/kotlin/Dependencies.kt b/android/buildSrc/src/main/kotlin/Dependencies.kt index b15b8ffbb099..367837caee06 100644 --- a/android/buildSrc/src/main/kotlin/Dependencies.kt +++ b/android/buildSrc/src/main/kotlin/Dependencies.kt @@ -24,8 +24,6 @@ object Dependencies { const val appcompat = "androidx.appcompat:appcompat:${Versions.AndroidX.appcompat}" const val coreKtx = "androidx.core:core-ktx:${Versions.AndroidX.coreKtx}" const val coreSplashscreen = "androidx.core:core-splashscreen:${Versions.AndroidX.coreSplashscreen}" - const val fragmentTestning = - "androidx.fragment:fragment-testing:${Versions.AndroidX.fragmentTesting}" const val lifecycleRuntimeKtx = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.AndroidX.lifecycle}" const val lifecycleViewmodelKtx = diff --git a/android/buildSrc/src/main/kotlin/Versions.kt b/android/buildSrc/src/main/kotlin/Versions.kt index 7c3892ecbbac..a98588925452 100644 --- a/android/buildSrc/src/main/kotlin/Versions.kt +++ b/android/buildSrc/src/main/kotlin/Versions.kt @@ -1,39 +1,38 @@ object Versions { - const val commonsValidator = "1.8.0" + const val commonsValidator = "1.9.0" const val jodaTime = "2.12.7" const val junit = "5.10.2" const val jvmTarget = "17" const val kermit = "2.0.4" const val konsist = "0.15.1" const val kotlin = "2.0.0" - const val kotlinx = "1.8.0" + const val kotlinx = "1.8.1" const val leakCanary = "2.13" - const val mockk = "1.13.11" + const val mockk = "1.13.12" const val mockWebserver = "4.12.0" - const val turbine = "1.0.0" + const val turbine = "1.1.0" const val billingClient = "6.2.0" object Android { const val compileSdkVersion = 34 - const val junit = "1.4.0" + const val junit = "1.5.0" const val minSdkVersion = 26 const val targetSdkVersion = 34 const val volley = "1.2.1" } object AndroidX { - const val activityCompose = "1.9.0" + const val activityCompose = "1.9.1" const val appcompat = "1.7.0" const val coreKtx = "1.13.1" const val coreSplashscreen = "1.1.0-rc01" - const val espresso = "3.5.1" - const val lifecycle = "2.8.3" - const val fragmentTesting = "1.6.2" - const val test = "1.5.0" - const val testMonitor = "1.6.1" - const val testOrchestrator = "1.4.2" - const val testRunner = "1.5.2" - const val uiautomator = "2.3.0" + const val espresso = "3.6.1" + const val lifecycle = "2.8.4" + const val test = "1.6.1" + const val testMonitor = "1.7.1" + const val testOrchestrator = "1.5.0" + const val testRunner = "1.6.1" + const val uiautomator = "2.4.0-alpha01" } object Arrow { @@ -41,7 +40,7 @@ object Versions { } object Compose { - const val base = "1.7.0-beta05" + const val base = "1.7.0-beta06" const val destinations = "2.1.0-beta10" const val constrainLayout = "1.0.1" const val foundation = base @@ -65,7 +64,7 @@ object Versions { const val dependencyCheck = "10.0.3" const val detekt = "1.23.6" const val gradleVersions = "0.51.0" - const val junit5 = "1.10.0.0" + const val junit5 = "1.10.2.0" const val ktfmt = "0.17.0" // Ksp version is linked with kotlin version, find matching release here: // https://github.com/google/ksp/releases diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml index 297de34095cf..f4e4e7c3ce27 100644 --- a/android/gradle/verification-metadata.xml +++ b/android/gradle/verification-metadata.xml @@ -28,6 +28,9 @@ + + + @@ -40,11 +43,6 @@ - - - - - @@ -82,12 +80,17 @@ - - - + + + - - + + + + + + + @@ -106,17 +109,12 @@ - - - - - - + + + - - - - + + @@ -151,18 +149,20 @@ - - - + + + - - + + - - - + + + + + @@ -175,14 +175,6 @@ - - - - - - - - @@ -199,6 +191,14 @@ + + + + + + + + @@ -231,9 +231,12 @@ - - - + + + + + + @@ -312,6 +315,11 @@ + + + + + @@ -372,11 +380,11 @@ - - - + + + - + @@ -392,16 +400,13 @@ - - - - - - + + + - + @@ -409,6 +414,11 @@ + + + + + @@ -430,11 +440,11 @@ - - - + + + - + @@ -451,20 +461,12 @@ - - - + + + - - - - - - - - - + @@ -472,20 +474,25 @@ - - - + + + - - + + - - - + + + - - + + + + + + + @@ -496,11 +503,16 @@ - - - + + + - + + + + + + @@ -512,20 +524,28 @@ - - - + + + - + - - - + + + - - + + + + + + + + + + @@ -554,11 +574,11 @@ - - - + + + - + @@ -578,23 +598,26 @@ - - - + + + - + - - - + + + - - + + + + + @@ -621,6 +644,9 @@ + + + @@ -650,6 +676,9 @@ + + + @@ -722,28 +751,28 @@ - - - + + + - + - - - + + + - + - - + + - - + + @@ -756,52 +785,52 @@ - - - + + + - + - - - + + + - + - - + + - - + + - - - + + + - + - - - + + + - + - - - + + + - - + + @@ -809,96 +838,102 @@ - - - + + + - + - - - + + + - + - - + + - - + + - - - + + + - + - - - + + + - + - - + + - - + + - - - + + + + + + - - - + + + - + - - - + + + - - - + + + + + + - - - + + + - + - - - + + + - - - + + + - - + + @@ -911,100 +946,100 @@ - - - + + + - + - - - + + + - + - - + + - - + + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - + + - - + + - - + + - - + + - - - + + + - + - - - + + + - + - - + + - - + + @@ -1012,28 +1047,28 @@ - - - + + + - + - - - + + + - + - - + + - - + + @@ -1041,28 +1076,28 @@ - - - + + + - + - - - + + + - + - - + + - - + + @@ -1073,6 +1108,14 @@ + + + + + + + + @@ -1089,6 +1132,11 @@ + + + + + @@ -1115,14 +1163,6 @@ - - - - - - - - @@ -1263,22 +1303,6 @@ - - - - - - - - - - - - - - - - @@ -1292,6 +1316,19 @@ + + + + + + + + + + + + + @@ -1301,9 +1338,6 @@ - - - @@ -1320,7 +1354,12 @@ - + + + + + + @@ -1345,6 +1384,14 @@ + + + + + + + + @@ -1353,19 +1400,19 @@ + + + + + + + + - - - - - - - - @@ -1382,12 +1429,23 @@ + + + + + + + + + + + @@ -1406,9 +1464,6 @@ - - - @@ -1429,10 +1484,15 @@ - - - + + + + + + + + @@ -1453,6 +1513,14 @@ + + + + + + + + @@ -1479,12 +1547,23 @@ + + + + + + + + + + + @@ -1498,9 +1577,6 @@ - - - @@ -1517,7 +1593,12 @@ - + + + + + + @@ -1529,11 +1610,24 @@ + + + + + + + + - + + + + + + @@ -1545,31 +1639,31 @@ - - - + + + - - + + - - - + + + - - + + - - - + + + + + + - - - @@ -1586,7 +1680,12 @@ - + + + + + + @@ -1598,12 +1697,20 @@ - - - + + + + + + + + + + + - - + + @@ -1612,6 +1719,9 @@ + + + @@ -1625,9 +1735,6 @@ - - - @@ -1647,7 +1754,15 @@ - + + + + + + + + + @@ -1659,6 +1774,14 @@ + + + + + + + + @@ -1671,7 +1794,12 @@ - + + + + + + @@ -1683,26 +1811,31 @@ - - + + + + + + + + + + - - + + - - - + + + - - + + - - - @@ -1723,7 +1856,18 @@ + + + + + + + + + + + @@ -1742,9 +1886,6 @@ - - - @@ -1765,6 +1906,14 @@ + + + + + + + + @@ -1873,24 +2022,44 @@ + + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + + @@ -1898,9 +2067,9 @@ - - - + + + @@ -1908,9 +2077,9 @@ - - - + + + @@ -1918,9 +2087,9 @@ - - - + + + @@ -1933,17 +2102,22 @@ - - - + + + + + + + + - - - + + + - - + + @@ -1987,20 +2161,20 @@ - + - + - - + + - + - + - - + + @@ -2730,9 +2904,9 @@ - - - + + + @@ -3444,32 +3618,22 @@ - - - - - - - - - - - - - + + + - - + + @@ -3477,9 +3641,9 @@ - - - + + + @@ -3487,14 +3651,14 @@ - - - + + + - - - + + + @@ -3502,6 +3666,11 @@ + + + + + @@ -4058,100 +4227,100 @@ - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + @@ -4287,14 +4456,14 @@ - - - + + + - - - + + + @@ -5249,6 +5418,14 @@ + + + + + + + + @@ -5297,6 +5474,14 @@ + + + + + + + + @@ -5310,6 +5495,14 @@ + + + + + + + + @@ -5322,8 +5515,13 @@ - - + + + + + + + @@ -5342,6 +5540,14 @@ + + + + + + + + @@ -5358,30 +5564,46 @@ + + + + + + + + - - - + + + - - + + + + + - - + + + + + + + @@ -5392,6 +5614,14 @@ + + + + + + + + @@ -5477,11 +5707,6 @@ - - - - - @@ -5531,11 +5756,6 @@ - - - - - @@ -5544,14 +5764,6 @@ - - - - - - - - @@ -5568,11 +5780,6 @@ - - - - - @@ -5594,16 +5801,6 @@ - - - - - - - - - - @@ -5612,11 +5809,6 @@ - - - - - diff --git a/android/scripts/run-instrumented-tests.sh b/android/scripts/run-instrumented-tests.sh index 77e29e48fe7e..f966bcfa1275 100755 --- a/android/scripts/run-instrumented-tests.sh +++ b/android/scripts/run-instrumented-tests.sh @@ -10,8 +10,8 @@ AUTO_FETCH_TEST_HELPER_APKS=${AUTO_FETCH_TEST_HELPER_APKS:-"false"} APK_BASE_DIR=${APK_BASE_DIR:-"$SCRIPT_DIR/.."} LOG_FAILURE_MESSAGE="FAILURES!!!" -ORCHESTRATOR_URL=https://dl.google.com/android/maven2/androidx/test/orchestrator/1.4.2/orchestrator-1.4.2.apk -TEST_SERVICES_URL=https://dl.google.com/android/maven2/androidx/test/services/test-services/1.4.2/test-services-1.4.2.apk +ORCHESTRATOR_URL=https://dl.google.com/android/maven2/androidx/test/orchestrator/1.5.0/orchestrator-1.5.0.apk +TEST_SERVICES_URL=https://dl.google.com/android/maven2/androidx/test/services/test-services/1.5.0/test-services-1.5.0.apk PARTNER_AUTH="${PARTNER_AUTH:-}" VALID_TEST_ACCOUNT_NUMBER="${VALID_TEST_ACCOUNT_NUMBER:-}"