diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt b/app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt index 2bf1083e..6823f67a 100644 --- a/app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt +++ b/app/src/androidTest/java/com/zeapo/pwdstore/DecryptTest.kt @@ -56,12 +56,19 @@ class DecryptTest { @Test fun pathShouldDecompose() { - init() + val pathOne = "/fake/path/cat1/n1.gpg".replace("//", "/") + val pathTwo = "/fake/path/n2.gpg".replace("//", "/") - assertEquals("/category/sub.gpg", PgpActivity.getRelativePath(path, repoPath)) - assertEquals("/category/", PgpActivity.getParentPath(path, repoPath)) - assertEquals("sub", PgpActivity.getName(path, repoPath)) - assertEquals("sub", PgpActivity.getName(path, "$repoPath/")) + assertEquals("/cat1/n1.gpg", PgpActivity.getRelativePath(pathOne, "/fake/path")) + assertEquals("/cat1/", PgpActivity.getParentPath(pathOne, "/fake/path")) + assertEquals("n1", PgpActivity.getName(pathOne, "/fake/path")) + // test that even if we append a `/` it still works + assertEquals("n1", PgpActivity.getName(pathOne, "/fake/path/")) + + assertEquals("/n2.gpg", PgpActivity.getRelativePath(pathTwo, "/fake/path")) + assertEquals("/", PgpActivity.getParentPath(pathTwo, "/fake/path")) + assertEquals("n2", PgpActivity.getName(pathTwo, "/fake/path")) + assertEquals("n2", PgpActivity.getName(pathTwo, "/fake/path/")) } @Test diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt index 6bfac55f..73c9f935 100644 --- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt @@ -570,7 +570,7 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound { * Gets the relative path to the repository */ fun getRelativePath(fullPath: String, repositoryPath: String): String = - fullPath.replace(repositoryPath, "").replace("//", "/") + fullPath.replace(repositoryPath, "").replace("/+".toRegex(), "/") /** * Gets the Parent path, relative to the repository @@ -578,7 +578,7 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound { fun getParentPath(fullPath: String, repositoryPath: String) : String { val relativePath = getRelativePath(fullPath, repositoryPath) val index = relativePath.lastIndexOf("/") - return "/${relativePath.substring(startIndex = 0, endIndex = index + 1)}/".replace("//", "/") + return "/${relativePath.substring(startIndex = 0, endIndex = index + 1)}/".replace("/+".toRegex(), "/") } /**