diff --git a/V2rayNG/app/build.gradle.kts b/V2rayNG/app/build.gradle.kts index 78ac0f7cd..05b969139 100644 --- a/V2rayNG/app/build.gradle.kts +++ b/V2rayNG/app/build.gradle.kts @@ -149,6 +149,17 @@ android { } } + testOptions { + unitTests.all { + it.useJUnitPlatform() + // Treat Jupiter discovery warnings as failures: JUnit 4 failed on an invalid @Test + // method, such as one that returns a value, while Jupiter only warns and skips it. + // The key is @API(status = EXPERIMENTAL) in JUnit 6; after a JUnit upgrade, check + // that a temporary `@Test fun probe() = 1` still fails the unit test task. + it.systemProperty("junit.platform.discovery.issue.severity.critical", "WARNING") + } + } + } dependencies { @@ -201,7 +212,9 @@ dependencies { implementation(libs.reorderable) // Testing Libraries - testImplementation(libs.junit) + testImplementation(platform(libs.junit.bom)) + testImplementation(libs.junit.jupiter) + testRuntimeOnly(libs.junit.platform.launcher) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) testImplementation(libs.mockito.core) diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/HttpUtilTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/HttpUtilTest.kt index 07d87f4d4..22ac03d7e 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/HttpUtilTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/HttpUtilTest.kt @@ -1,8 +1,8 @@ package com.v2ray.ang import com.v2ray.ang.util.HttpUtil -import org.junit.Assert.assertEquals -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test class HttpUtilTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/UtilsTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/UtilsTest.kt index 77dd53ab2..dfe972111 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/UtilsTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/UtilsTest.kt @@ -1,10 +1,10 @@ package com.v2ray.ang import com.v2ray.ang.util.Utils -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test /** * Example local unit test, which will execute on the development machine (host). diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/extension/ListExtTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/extension/ListExtTest.kt index 12503c9ef..5c06e121e 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/extension/ListExtTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/extension/ListExtTest.kt @@ -1,9 +1,9 @@ package com.v2ray.ang.extension -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test class ListExtTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/fmt/ShadowsocksFmtTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/fmt/ShadowsocksFmtTest.kt index ef9808d34..74f846d2c 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/fmt/ShadowsocksFmtTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/fmt/ShadowsocksFmtTest.kt @@ -4,14 +4,14 @@ import android.util.Base64 import android.util.Log import com.v2ray.ang.enums.EConfigType import com.v2ray.ang.dto.entities.ProfileItem -import org.junit.After -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertNotNull -import org.junit.Assert.assertNull -import org.junit.Assert.assertTrue -import org.junit.Before -import org.junit.Test +import org.junit.jupiter.api.AfterEach +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertNotNull +import org.junit.jupiter.api.Assertions.assertNull +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test import org.mockito.MockedStatic import org.mockito.Mockito import org.mockito.Mockito.mockStatic @@ -67,7 +67,7 @@ class ShadowsocksFmtTest { return "$SS_SCHEME${base64Encoded}#${remarks.replace(" ", "%20")}" } - @Before + @BeforeEach fun setUp() { mockLog = mockStatic(Log::class.java, Mockito.RETURNS_DEFAULTS) @@ -113,7 +113,7 @@ class ShadowsocksFmtTest { } } - @After + @AfterEach fun tearDown() { mockLog.close() mockBase64.close() @@ -271,7 +271,7 @@ class ShadowsocksFmtTest { val uri = ShadowsocksFmt.toUri(config) // Verify URI does not include scheme (toUri returns without ss:// prefix) - assertFalse("toUri should not include scheme prefix", uri.startsWith(SS_SCHEME)) + assertFalse(uri.startsWith(SS_SCHEME), "toUri should not include scheme prefix") assertTrue(uri.contains("@example.com:8388")) assertTrue(uri.contains("#Test%20Server")) @@ -317,8 +317,8 @@ class ShadowsocksFmtTest { // Verify toUri returns without scheme, so we need to prepend it assertFalse( - "toUri should return URI without scheme", - regeneratedUri.startsWith(SS_SCHEME) + regeneratedUri.startsWith(SS_SCHEME), + "toUri should return URI without scheme" ) val reparsed = ShadowsocksFmt.parse("$SS_SCHEME$regeneratedUri") @@ -362,7 +362,7 @@ class ShadowsocksFmtTest { val result = ShadowsocksFmt.parseSip002(ssUrl) - assertNotNull("Failed for method: $method", result) + assertNotNull(result, "Failed for method: $method") assertEquals(method, result?.method) } } diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/handler/OrphanProfileCleanerTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/handler/OrphanProfileCleanerTest.kt index 3a3ac0599..b292417de 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/handler/OrphanProfileCleanerTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/handler/OrphanProfileCleanerTest.kt @@ -1,9 +1,9 @@ package com.v2ray.ang.handler import com.v2ray.ang.AppConfig.DEFAULT_SUBSCRIPTION_ID -import org.junit.Assert.assertEquals -import org.junit.Assert.assertNull -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertNull +import org.junit.jupiter.api.Test class OrphanProfileCleanerTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/handler/ProfileReplacementTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/handler/ProfileReplacementTest.kt index 6866ee551..4207e9ca8 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/handler/ProfileReplacementTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/handler/ProfileReplacementTest.kt @@ -2,9 +2,9 @@ package com.v2ray.ang.handler import com.v2ray.ang.dto.entities.ProfileItem import com.v2ray.ang.enums.EConfigType -import org.junit.Assert.assertEquals -import org.junit.Assert.assertNull -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertNull +import org.junit.jupiter.api.Test class ProfileReplacementTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/handler/SubscriptionIndexTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/handler/SubscriptionIndexTest.kt index 79532d4be..10f3030cd 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/handler/SubscriptionIndexTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/handler/SubscriptionIndexTest.kt @@ -4,10 +4,10 @@ import android.util.Log import com.tencent.mmkv.MMKV import com.v2ray.ang.dto.entities.SubscriptionItem import com.v2ray.ang.util.JsonUtil -import org.junit.Assert.assertEquals -import org.junit.Before -import org.junit.BeforeClass -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.BeforeAll +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test import org.mockito.Mockito.mockStatic import org.mockito.kotlin.any import org.mockito.kotlin.mock @@ -20,7 +20,7 @@ class SubscriptionIndexTest { private val mainValues = mutableMapOf() private val subValues = mutableMapOf() - @Before + @BeforeEach fun prepareStorage() { for ((storage, values) in listOf(main to mainValues, subs to subValues)) { reset(storage) @@ -99,7 +99,7 @@ class SubscriptionIndexTest { private val subs: MMKV = mock() private val settings: MMKV = mock() - @BeforeClass + @BeforeAll @JvmStatic fun initializeHandles() { mockStatic(MMKV::class.java).use { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/root/RootProcessRunnerTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/root/RootProcessRunnerTest.kt index 4cfb7e6ea..8752795c8 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/root/RootProcessRunnerTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/root/RootProcessRunnerTest.kt @@ -1,7 +1,7 @@ package com.v2ray.ang.root -import org.junit.Assert.* -import org.junit.Test +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test import java.util.concurrent.TimeUnit class RootProcessRunnerTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/root/RootProxyManagerTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/root/RootProxyManagerTest.kt index 9759f807e..e34ec97a3 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/root/RootProxyManagerTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/root/RootProxyManagerTest.kt @@ -1,7 +1,7 @@ package com.v2ray.ang.root -import org.junit.Assert.assertEquals -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test class RootProxyManagerTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/service/DialerWebviewServiceTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/service/DialerWebviewServiceTest.kt index cffb83355..8284bfcf7 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/service/DialerWebviewServiceTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/service/DialerWebviewServiceTest.kt @@ -6,12 +6,12 @@ import android.os.Looper import android.webkit.WebSettings import android.webkit.WebView import android.webkit.WebViewClient -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertSame -import org.junit.Assert.assertThrows -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertSame +import org.junit.jupiter.api.Assertions.assertThrows +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test import org.mockito.Mockito.mockConstruction import org.mockito.Mockito.mockStatic import org.mockito.kotlin.any diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/service/RealPingExecutionLimiterTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/service/RealPingExecutionLimiterTest.kt index 1b41362f1..3d1c6a2b7 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/service/RealPingExecutionLimiterTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/service/RealPingExecutionLimiterTest.kt @@ -5,9 +5,9 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.runBlocking -import org.junit.Assert.assertEquals -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/ScannerActivityTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/ScannerActivityTest.kt index 0b3464725..7b5dd99c2 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/ScannerActivityTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/ScannerActivityTest.kt @@ -6,8 +6,8 @@ import com.google.zxing.DecodeHintType import com.google.zxing.MultiFormatReader import com.google.zxing.common.HybridBinarizer import com.google.zxing.qrcode.QRCodeWriter -import org.junit.Assert.assertEquals -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test import java.nio.ByteBuffer class ScannerActivityTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/apppicker/AppPickerViewModelTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/apppicker/AppPickerViewModelTest.kt index 27ff0c4a6..6793e9a6f 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/apppicker/AppPickerViewModelTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/apppicker/AppPickerViewModelTest.kt @@ -1,8 +1,8 @@ package com.v2ray.ang.ui.apppicker import android.app.Application -import org.junit.Assert.assertEquals -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test import org.mockito.kotlin.mock class AppPickerViewModelTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/logcat/LogcatEntryTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/logcat/LogcatEntryTest.kt index e26f80c36..e1d3b30fc 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/logcat/LogcatEntryTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/logcat/LogcatEntryTest.kt @@ -1,8 +1,8 @@ package com.v2ray.ang.ui.logcat -import org.junit.Assert.assertEquals -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test class LogcatEntryTest { @Test diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/MainImportMenuTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/MainImportMenuTest.kt index 82da4af5c..4da8415bf 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/MainImportMenuTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/MainImportMenuTest.kt @@ -1,7 +1,7 @@ package com.v2ray.ang.ui.main -import org.junit.Assert.assertEquals -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test class MainImportMenuTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/MainTestRequestsTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/MainTestRequestsTest.kt index a2ab2ee7b..15b2a9289 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/MainTestRequestsTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/MainTestRequestsTest.kt @@ -1,11 +1,11 @@ package com.v2ray.ang.ui.main -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertNotEquals -import org.junit.Assert.assertNull -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertNotEquals +import org.junit.jupiter.api.Assertions.assertNull +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test class MainTestRequestsTest { @Test diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/ServerDeleteTargetTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/ServerDeleteTargetTest.kt index 3e2790ceb..b02138d52 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/ServerDeleteTargetTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/main/ServerDeleteTargetTest.kt @@ -1,9 +1,9 @@ package com.v2ray.ang.ui.main import androidx.compose.runtime.saveable.SaverScope -import org.junit.Assert.assertEquals -import org.junit.Assert.assertNull -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertNull +import org.junit.jupiter.api.Test class ServerDeleteTargetTest { @Test diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/server/ProxyChainMembersTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/server/ProxyChainMembersTest.kt index 96b7c3a28..8aecc602c 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/server/ProxyChainMembersTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/server/ProxyChainMembersTest.kt @@ -1,8 +1,8 @@ package com.v2ray.ang.ui.server -import org.junit.Assert.assertEquals -import org.junit.Assert.assertSame -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertSame +import org.junit.jupiter.api.Test class ProxyChainMembersTest { @Test diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/settings/SettingsViewModelTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/settings/SettingsViewModelTest.kt index 15c8dce13..fd63ee27e 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/settings/SettingsViewModelTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/settings/SettingsViewModelTest.kt @@ -7,10 +7,10 @@ import android.content.pm.PackageManager import android.provider.Settings import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runBlocking -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test import org.mockito.Mockito.mockConstruction import org.mockito.kotlin.mock import org.mockito.kotlin.whenever diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/userasset/UserAssetViewModelTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/userasset/UserAssetViewModelTest.kt index d3ad28932..be2c86590 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/ui/userasset/UserAssetViewModelTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/ui/userasset/UserAssetViewModelTest.kt @@ -4,9 +4,9 @@ import android.app.Application import com.v2ray.ang.AppConfig import com.v2ray.ang.dto.entities.AssetUrlCache import com.v2ray.ang.dto.entities.AssetUrlItem -import org.junit.Assert.assertEquals -import org.junit.Assert.assertTrue -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test import org.mockito.Mockito.mock class UserAssetViewModelTest { diff --git a/V2rayNG/app/src/test/java/com/v2ray/ang/util/ZipUtilTest.kt b/V2rayNG/app/src/test/java/com/v2ray/ang/util/ZipUtilTest.kt index 126d34439..b852a9100 100644 --- a/V2rayNG/app/src/test/java/com/v2ray/ang/util/ZipUtilTest.kt +++ b/V2rayNG/app/src/test/java/com/v2ray/ang/util/ZipUtilTest.kt @@ -1,12 +1,11 @@ package com.v2ray.ang.util -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertThrows -import org.junit.Assert.assertTrue -import org.junit.Rule -import org.junit.Test -import org.junit.rules.TemporaryFolder +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertThrows +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.io.TempDir import java.io.File import java.util.zip.ZipEntry import java.util.zip.ZipException @@ -14,13 +13,13 @@ import java.util.zip.ZipOutputStream class ZipUtilTest { - @get:Rule - val temporaryFolder = TemporaryFolder() + @TempDir + lateinit var tempDir: File @Test fun unzipToFolderExtractsNestedFile() { val archive = createArchive("nested/config" to "value".toByteArray()) - val destination = File(temporaryFolder.root, "destination") + val destination = File(tempDir, "destination") assertTrue(ZipUtil.unzipToFolder(archive, destination.absolutePath)) assertEquals("value", File(destination, "nested/config").readText()) @@ -29,7 +28,7 @@ class ZipUtilTest { @Test fun extractArchiveRejectsPathTraversal() { val archive = createArchive("../outside" to "overwrite".toByteArray()) - val outside = File(temporaryFolder.root, "outside") + val outside = File(tempDir, "outside") assertArchiveRejected(archive) @@ -100,7 +99,7 @@ class ZipUtilTest { archive: File, limits: ZipUtil.ExtractionLimits = extractionLimits(), ) { - val destination = File(temporaryFolder.root, "destination") + val destination = File(tempDir, "destination") assertThrows(ZipException::class.java) { ZipUtil.extractArchive(archive, destination, limits) } @@ -108,7 +107,7 @@ class ZipUtilTest { } private fun createArchive(vararg entries: Pair): File { - val archive = temporaryFolder.newFile() + val archive = File.createTempFile("archive", ".zip", tempDir) ZipOutputStream(archive.outputStream()).use { output -> entries.forEach { (name, contents) -> output.putNextEntry(ZipEntry(name)) diff --git a/V2rayNG/gradle/libs.versions.toml b/V2rayNG/gradle/libs.versions.toml index da6f83c6f..be445936a 100644 --- a/V2rayNG/gradle/libs.versions.toml +++ b/V2rayNG/gradle/libs.versions.toml @@ -4,7 +4,7 @@ desugarJdkLibs = "2.1.5" gradleLicensePlugin = "0.9.91" kotlin = "2.4.20" coreKtx = "1.19.0" -junit = "4.13.2" +junit = "6.1.3" junitVersion = "1.3.0" espressoCore = "3.7.0" activity = "1.13.0" @@ -26,7 +26,9 @@ coil = "3.6.3" androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } desugar-jdk-libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugarJdkLibs" } gradle-license-plugin = { module = "com.jaredsburrows:gradle-license-plugin", version.ref = "gradleLicensePlugin" } -junit = { group = "junit", name = "junit", version.ref = "junit" } +junit-bom = { group = "org.junit", name = "junit-bom", version.ref = "junit" } +junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter" } +junit-platform-launcher = { group = "org.junit.platform", name = "junit-platform-launcher" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } mmkv-static = { module = "com.tencent:mmkv-static", version.ref = "mmkvStatic" }