From a97da32d7a09503dcd4ccda76c32ab2cecd28917 Mon Sep 17 00:00:00 2001 From: Manoel Cortes Mendez Date: Wed, 11 Mar 2026 15:56:38 +0100 Subject: [PATCH] Test getFileCachedCopy returns absolute path In older code, `getFileCachedCopy` returned a URI-encoded filepath. Later, it was updated to return a regular absolute filepath. This test enforces that behavior. I used a filename with a space because these have a particular URI-encoding (`%20`), so it should catch any regression. --- AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt | 1 - .../src/test/java/com/ichi2/utils/ImportUtilsTest.kt | 10 ++++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt b/AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt index 9aa7353c3f16..75aa5b8a60c5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt +++ b/AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt @@ -161,7 +161,6 @@ object ImportUtils { } } - @NeedsTest("Check file name is absolute") fun getFileCachedCopy( context: Context, uri: Uri, diff --git a/AnkiDroid/src/test/java/com/ichi2/utils/ImportUtilsTest.kt b/AnkiDroid/src/test/java/com/ichi2/utils/ImportUtilsTest.kt index 182555f05e57..cd6867c1a420 100644 --- a/AnkiDroid/src/test/java/com/ichi2/utils/ImportUtilsTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/utils/ImportUtilsTest.kt @@ -30,10 +30,12 @@ import org.hamcrest.Matchers.containsString import org.hamcrest.Matchers.endsWith import org.hamcrest.Matchers.lessThanOrEqualTo import org.hamcrest.Matchers.not +import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test import org.junit.runner.RunWith +import java.io.File @RunWith(AndroidJUnit4::class) class ImportUtilsTest : RobolectricTest() { @@ -76,6 +78,14 @@ class ImportUtilsTest : RobolectricTest() { return testFileImporter.cacheFileName } + @Test + fun getFileCachedCopyReturnsAbsolutePath() { + val filename = "spaced filename.apkg" + val expectedFilepath = File(targetContext.cacheDir, filename).absolutePath + val actualFilepath = TestFileImporter(filename).getFileCachedCopy(targetContext, "dummy".toUri()) + assertEquals(expectedFilepath, actualFilepath) + } + @Test fun collectionApkgIsValid() { assertTrue(ImportUtils.isValidPackageName("collection.apkg"))